我目前正在使用 JQuery Validate 插件和一些提示插件来验证表单。我还需要验证电子邮件地址,然后检查所有字段是否已填写。我熟悉 Validaterules
功能,但是它会导致问题。
一旦电子邮件被评估为无效,在我当前的实现中,所有后续文本字段似乎都是无效的(通过生成插件提示)并导致所有后续字段this field is required
在用户甚至有机会之前都有一个烦人的提示填写它们。
我想知道是否有办法检查我的电子邮件验证函数是否从validate
调用中返回 true,如果它不返回 true,则认为表单无效。
稍后我将需要实现一个遵循相同逻辑的密码正则表达式函数。
我的表单验证
$(".form").validate({
errorPlacement: function(error, element) {
},
highlight: function(element, errorClass, validClass) {
$(element).css('border', '1px solid red');
$('.addlefttip').qtip({
position: {
my: 'middle left',
at: 'middle right'
},
show: {
event: 'focus'
},
hide:{
event: 'blur'
},
style: {
classes: 'qtip-blue qtip-shadow'
},
content: {
attr: 'alt'
},
});
$('.addtoptip').qtip({
position: {
my: 'bottom left',
at: 'top right'
},
show: {
event: 'focus'
},
hide:{
event: 'blur'
},
style: {
classes: 'qtip-blue qtip-shadow'
},
content: {
attr: 'alt'
},
});
},
rules: {
email: {
minlength: 5
}
},
unhighlight: function(element, errorClass, validClass) {
$(element).css('border', '1px solid #ddd');
}
});
我的电子邮件验证:
$('.email-field').change(function(){
var email = $(this).val();
var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
if(re.test(email)) {
document.getElementById('result').innerHTML = '<span style="color:green; font-style:italic; font-weight:normal;"><img src="http://myhousesforsaleindetroit.com/wp-content/uploads/2012/08/green-check-mark.png"> valid';
} else {
document.getElementById('result').innerHTML = '<img src="http://upload.wikimedia.org/wikipedia/en/archive/8/89/20070603232424!RedX.png" style="width:15px; margin:-2px 0px 0px 0px;"/> invalid';
}
});
我很感激任何建议!
提前谢谢了!