我需要执行以下操作,但我在网上找不到任何类似表单验证的示例:
<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()
我试过这样:
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;
}
我正在调用这样的函数:
a)"Some text" <input type="text" name="aa" size="1" maxlength="1" onkeypress="return validate(aa)"><br>
但是这样我就必须为每个领域创建一个不同的功能。那么我该如何实现呢?
答案 0 :(得分:3)
收集表单元素时,您可以使用括号表示法代替点表示法,这样您就可以使用变量:
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;
}
然后,您只需使用要验证的字段名称调用validate
。
<强>资源:强>
答案 1 :(得分:2)
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;
}
答案 2 :(得分:1)
您需要对函数进行参数化,以传递字段(或将其名称作为参数)。
我的示例使用了prototype.js函数$ F,但是您可以使用jquery或(在本机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');
等。
答案 3 :(得分:0)
您可以尝试使用jQuery,并使用以下内容进行验证:
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;
每个字段都必须包含“validateMe”CssClass
答案 4 :(得分:0)
使用Javascript
1。本网站上提供的if-else语句可以添加到验证函数中,该循环检查表单的每个字段。
http://eisabainyo.net/weblog/2009/04/30/10-examples-of-basic-input-validation-in-javascript/
2。目前还不清楚,请参阅这篇伟大的指南 http://www.tizag.com/javascriptT/javascriptform.php
使用jQuery
你总是可以尝试jQuery验证插件
http://speckyboy.com/2010/06/22/50-jquery-plugins-for-form-functionality-validation-security-and-customisation/