admin管理员组文章数量:1406444
I need to do the following, but I couldn't find any example of similar form validation on the web:
<script type="text/javascript">
function something(){
if the value on the field who is calling this function == 2,4,6 or 8
alert("This number is invalid")
focus in this field.
</script>
Field1 call something()
Field2 call something()
Field3 call something()
Field4 call something()
Field5 call something()
Field6 call something()
I've tried like this:
function validate()
{
valid = true;
if ( document.form.field_name.value == "2" || document.form.field_name.value == "4" || document.form.field_name.value == "6" ||
document.form.field_name.value == "8" ){
alert ( "Invalid number." );
valid = false;
document.form.field_name.focus();
}
return valid;
}
I'm calling the function like this:
a)"Some text" <input type="text" name="aa" size="1" maxlength="1" onkeypress="return validate(aa)"><br>
But this way I would have to create a different function for every field. So how could I implement this?
I need to do the following, but I couldn't find any example of similar form validation on the web:
<script type="text/javascript">
function something(){
if the value on the field who is calling this function == 2,4,6 or 8
alert("This number is invalid")
focus in this field.
</script>
Field1 call something()
Field2 call something()
Field3 call something()
Field4 call something()
Field5 call something()
Field6 call something()
I've tried like this:
function validate()
{
valid = true;
if ( document.form.field_name.value == "2" || document.form.field_name.value == "4" || document.form.field_name.value == "6" ||
document.form.field_name.value == "8" ){
alert ( "Invalid number." );
valid = false;
document.form.field_name.focus();
}
return valid;
}
I'm calling the function like this:
a)"Some text" <input type="text" name="aa" size="1" maxlength="1" onkeypress="return validate(aa)"><br>
But this way I would have to create a different function for every field. So how could I implement this?
Share Improve this question edited Sep 20, 2010 at 14:35 StudioWorks asked Sep 20, 2010 at 13:56 StudioWorksStudioWorks 4932 gold badges6 silver badges27 bronze badges 2- Some of the solutions below require that you attach the validation to each form element, and some are scripts that you can run onsubmit before the form posts. Both are good approaches. – Benj Commented Sep 20, 2010 at 14:05
-
The name of your field is a string, not an object or variable, so you need to quote it in your onkeypress attribute (
onkeypress="return validate('aa')"
) or usethis.name
:onkeypress="return validate(this.name)"
– Daniel Vandersluis Commented Sep 20, 2010 at 14:41
5 Answers
Reset to default 3You can use bracket notation instead of dot notation when collecting your form element, which allows you to use a variable:
function validate(field_name)
{
var valid = true;
var element = document.form[field_name];
if (!element)
{
alert('A field named ' + field_name + ' cannot be found in your form!');
return false;
}
var value = element.value;
if (value == "2" || value == "4" || value == "6" || value == "8")
{
alert("Invalid number.");
valid = false;
element.focus();
}
return valid;
}
Then you'd just call validate
with the name of the field you want to validate.
Resources:
- Dot Notation and Square Bracket Notation in JavaScript
function validate()
{
var valid = true;
var fields = ['list', 'of', 'unique', 'input', 'ids'];
for (inputid in fields) {
field = document.getElementById(inputid);
if ( field.value == "2" || field.value == "4" || field.value == "6" ||
field.value == "8" ) {
alert ( "Invalid number." );
valid = false;
field.focus();
break;
}
}
return valid;
}
You need to parameterise your function, to pass the field (or its name in as an argument).
My example uses the prototype.js function $F, but you could do it equally well with jquery or (a bit more long-windedly) in native Javascript
function validate(field)
{
valid = true;
value = $F(field);
if ( value == "2" || value == "4" || value == "6" ||
value == "8" ){
alert ( "Invalid number." );
valid = false;
document.form.field_name.focus();
}
return valid;
}
validate('field1');
validate('field2');
etc.
you could try using jQuery, and validate with something like this:
var valid = true;
$(".validateMe").each(function()
{
var v = this.value;
if(v == "2" || v=="4" || v=="6" || v=="8") {
valid = false;
// Exit for each
return false;
}
});
if(!valid){
alert("Invalid number.");
$(this).focus();
}
return valid;
Each field would have to have the "validateMe" CssClass
Using Javascript
1. The if-else statements given on this website can be added to your validate function inside a loop that checks every field of the form.
http://eisabainyo/weblog/2009/04/30/10-examples-of-basic-input-validation-in-javascript/
2. Still unclear then refer this great guide
http://www.tizag./javascriptT/javascriptform.php
Using jQuery
You can always try jQuery validation plugins
http://speckyboy./2010/06/22/50-jquery-plugins-for-form-functionality-validation-security-and-customisation/
本文标签: phpHow to validate all fields with the same function in JavaScriptStack Overflow
版权声明:本文标题:php - How to validate all fields with the same function in JavaScript? - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745009374a2637455.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论