我正在使用 jQueryValidation 插件。Problem:我想在一个输入字段中使用多个模式规则。例如。:
$("form").validate({
rules: {
"email": {
required: true,
email: true
},
"password": {
required: true,
pattern: /^[A-Za-z0-9\w]{4,20}/,
pattern: /^[\d\w\xC4\xD6\xDC\xE4\xF6\xFC\xDF]*$/
}
}
});
会发生什么:插件仅测试第二个模式规则。例如。输入类似“tst”的内容是有效的(因为这满足秒模式),尽管它违反了第一个模式规则。
据我了解这个插件中规则的逻辑,所有规则都必须返回 TRUE 才能验证表单。
您不能使用相同的key:value
配对两次,因为第二个实例将覆盖第一个实例。
你有几个选择。
See: http://jqueryvalidation.org/jQuery.validator.addMethod/
我将创建一个专用于每个正则表达式模式的自定义方法,并给它一个语义相关的名称,诸如“电子邮件”、“电话”、“字母数字”、“IP”等。(这也与此插件内部处理所有正则表达式评估规则的方式相同。)
jQuery.validator.addMethod("foo", function(value, element) {
return this.optional(element) || /^[A-Za-z0-9\w]{4,20}/.test(value);
}, "Your entered data is not foo");
jQuery.validator.addMethod("bar", function(value, element) {
return this.optional(element) || /^[\d\w\xC4\xD6\xDC\xE4\xF6\xFC\xDF]*$/.test(value);
}, "Your entered data is not bar");
声明是这样的...
"password": {
required: true,
foo: true,
bar: true
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)