2014-04-28 114 views
0

我有这个JavaScript验证脚本,检查字段是否包含内容,并且我有一个验证脚本检查两个电子邮件字段是否具有相同的输入,但我想将它们合并为一个脚本,所以我只需要按下一个DIV与错误信息表单验证检查两个字段是否相等

第一部分

function isValid(fldId,len) { 
var fld = $("#"+fldId); 
var val = fld.val(); 
window.console && console.log(fld,fldId) 
if (val == "" || (len && val.length<len)) { 
    fld.css("borderColor","red"); 
    return false; 
}  
fld.css("borderColor","black"); 
return true; 
} 

$(function() { 
$("form").on("submit",function() { 
var errormessage = []; 

if (!isValid('name')) { 
    errormessage.push("error name"); 
} 
if (!isValid('email')) { 
    errormessage.push("error email"); 
} 
if (!isValid('emailnogmaals')) { 
    errormessage.push("error email again"); 
} 
if (errormessage.length>0) { 
    window.console && console.log("error present"); 
    $(".error-messages").html(errormessage.join('<br/>')).fadeIn(); 
    return false; 
} 
window.console && console.log("success"); 
return true; 
}); 
}); 

第二部分(如果这两个字段检查谁是一个(谁检查,如果现场有任何输入的所有的一个)具有相同的输入)

function checkEmail(theForm) { 
if (theForm.email.value != theForm.emailnogmaals.value) 
{ 
    $(".error-message-email").text("• De e-mail adressen komen niet overeen").fadeIn(); 
    return false; 
} else { 
    return true; 
} 
} 

是否可以将两者结合?

+1

有史以来看过jQuery验证插件,照顾所有这些和更多[链接这里](http://jqueryvalidation.org/documentation/) – OJay

+0

谢谢,尽管这不是我的问题的直接解决方案,但最好是我有 –

+0

很酷,是的,我已经写了很多次表单验证,并且很高兴拥有这些东西,节省您的时间花费对事情有点更值得。我会发布我的建议作为答案,如果你觉得如此倾向于接受 – OJay

回答

2

编写JavaScript表单验证似乎总是单调乏味,对我总是有daja似曾相识的感觉,我的意思是这是第一件事情之一那个javascript真的被用过了,所以我总觉得我正在重新发明轮子。无论如何,当你从头开始编写它时,似乎需要几次迭代才能完成。

关于车轮(即它的发明),我觉得它是用jQuery验证插件(link here)定义的。这是一个相当成熟的插件(已经存在了大约8年左右),并且运行得非常好。 验证包括但不限于: 必填项,最小值,最大值,范围,电子邮件,电话号码,日期,信用卡和等于(比较字段)。您还可以添加自己的规则进行验证。

你必须花一点时间才能知道它(即它是如何做的,特别是它使用的属性和它给出的验证错误的类名),但是一旦你这样做,你可以很容易地使用它一次又一次地改变样式,每次使用它,如果你愿意

0

您应该给该字段'email'和'emailnogmaals'一个ID。
可以说,我们给他们的ID的电子邮件和emailnogmaals:

function isValid(fldId,len) { 
    var fld = $("#"+fldId); 
    var val = fld.val(); 
    window.console && console.log(fld,fldId) 
    if (val == "" || (len && val.length<len)) { 
     fld.css("borderColor","red"); 
     return false; 
    }  
    fld.css("borderColor","black"); 
    return true; 
    } 

    $(function() { 
    $("form").on("submit",function() { 
    var errormessage = []; 

    if (!isValid('name')) { 
     errormessage.push("error name"); 
    } 
    if (!isValid('email')) { 
     errormessage.push("error email"); 
    } 
    if (!isValid('emailnogmaals')) { 
     errormessage.push("error email again"); 
    } 

//-------------------------Check for equal mail 
    if ($('#email').Text() != $('#emailnogmaals').Text()) 
    { 
     errormessage.push("emails are not equal"); 
    } 
//-------------------------Check for equal mail 

    if (errormessage.length>0) { 
     window.console && console.log("error present"); 
     $(".error-messages").html(errormessage.join('<br/>')).fadeIn(); 
     return false; 
    } 
    window.console && console.log("success"); 
    return true; 
    }); 
    }); 
+0

感谢您的快速答案!但它不起作用..添加这甚至跳过整个验证过程现在 –

+0

添加到您的头:' ' –

相关问题