【发布时间】:2015-10-14 19:14:44
【问题描述】:
我有一个使用 jquery 验证的表单,除了这个问题外,它工作得很好。要重现此问题,请填写表单中的所有字段,然后随机选择字段并删除输入。继续这样做,直到顶部没有出现错误消息,这就是问题所在。
我不确定为什么在删除输入时它不验证字段。如果有人能告诉我为什么这样做,那就太好了。我无法在 jquery validate 网站上的任何演示中重现它,所以我认为这与我的设置方式有关。
$.validator.addMethod("notEqual", function(value, element, param) {
return this.optional(element) || value != param;
});
$("#wizardForm").validate({
rules: {
firstname: {
required:{
depends:function(){
$(this).val($.trim($(this).val()));
return true;
}
},
pattern: /^[a-zA-Z]+([\s]+)?['-]?([a-zA-Z]+)?$/
},
lastname: {
required: {
depends:function(){
$(this).val($.trim($(this).val()));
return true;
}
},
pattern: /^[a-zA-Z]+([\s]+)?['-]?([a-zA-Z]+)?$/
},
email: {
required: {
depends:function(){
$(this).val($.trim($(this).val()));
return true;
}
},
email: true,
notEqual: "demo@somewhere.com",
pattern: /^(.)+(@)(.)+[.](.)+$/
},
password: {
required: true,
equalTo: {
param: "#PWconfirm",
depends: function(element) {
return $("#wizardForm #PWconfirm").val();
}
}
},
PWconfirm: {
required: true
},
company: {
required: true
},
zip: {
required: true
},
country: "required"
},
errorLabelContainer: ".validation-error-msg",
wrapper: "li",
errorClass: "validation-error",
messages: {
firstname: {
required: "The 'First Name' field cannot be empty.",
pattern: "The 'First Name' field must not contain numbers or special characters."
},
lastname: {
required: "The 'Last Name' field cannot be empty.",
pattern: "The 'Last Name' field must not contain numbers or special characters."
},
email: {
required: "The 'Email Address' field cannot be empty.",
email: "The 'Email Address' must be in a valid email format.",
notEqual: "This email address is reserved, please use another.",
pattern: "The 'Email Address' must be in a valid email format."
},
password: {
required: "The 'Password' field cannot be empty.",
equalTo: "Password fields do not match!"
},
company: "The 'Company Name' field cannot be empty.",
zip: "The 'Zip Code' field cannot be empty.",
PWconfirm: "The 'Retype Password' field cannot be empty.",
country: "The 'Country' field needs a valid selection."
}
});
提前感谢您的任何建议。
【问题讨论】:
-
随机删除任何输入值似乎都可以正常工作。你有确切的情况吗?
-
当我填写每个字段,然后删除重新输入的密码,然后删除姓氏时,这种情况一直发生在我身上。我也在 Chrome 中这样做。
-
你的小提琴工作正常。
-
你的小提琴也适合我。虽然,您对
depends属性的使用非常不寻常。我怀疑这是您问题的根源。 -
我仍然看到这个问题,但它现在似乎是间歇性的。在这里,我删除了@Sparky 关注的
depends属性,但我仍然看到了问题。我应该注意我从不点击提交按钮。填写所有字段,然后取出一些随机字段。 New Fiddle
标签: javascript jquery forms jquery-validate