在注册表单中,middleName字段是可选的。当用户输入他/她的middleName时,它应该验证该字段。
我使用以下代码来实现上述方案,但它无法正常工作。
$("#middleName").rules("add", {checkName: true, required: false, messages: {checkName: "Please enter a valid middle name"} });
jQuery.validator.addMethod("checkName",
function(value, element) {
var regExp = new RegExp(/^[a-zA-Z0-9\s|\,|\.|\-|\']+$/);
return regExp.test(value);
},
"Please enter a valid name."
);
任何人都可以建议我实现上述情况。
答案 0 :(得分:6)
在自定义方法中,您需要添加可选子句,如下所示:
jQuery.validator.addMethod("checkName", function(value, element) {
var regExp = new RegExp(/^[a-zA-Z0-9\s|\,|\.|\-|\']+$/);
return this.optional(element) || regExp.test(value);
}, "Please enter a valid name.");
你可以在验证库的additional methods file中看到这样的例子作为参考,基本上这只会增加一个理智/“我甚至需要吗?”检查结果。
答案 1 :(得分:0)
这是答案。
您可以通过两种方式使用它。当你想要它作为可选字段时,请说“checkName:optional”。
$("#middleName").rules("add", {checkName: 'opt', messages: {checkName: "Please enter a valid middle name"} });
如果您想将其作为必填字段,请说出checkName: 'true'
$("#middleName").rules("add", {checkName: true, messages: {checkName: "Please enter a valid middle name"} });
你的规则将是
jQuery.validator.addMethod("checkName", function(value, element, param) {
var regExp = new RegExp(/^[a-zA-Z0-9\s|\,|\.|\-|\']+$/);
if(param == 'opt'){
return this.optional(element) || regExp.test(value);
}else{
return regExp.test(value);
}
}, "Please enter a valid name.");
祝你好运
答案 2 :(得分:-1)
我会做这样的事情:
jQuery("#middlename").bind("KeyUp").function(validateMiddleName());
然后
function validateMiddleName()
{
if (jQuery("#middlename"))
{
//Do the validation
}
}