如何让jQuery支持HTML5的模式验证?如果不需要在每个字段上指定模式,那就太好了。
我知道我可以这样做(如下),但有更好的方法吗?
$("form").validate({
rules: {
"password": {
pattern: /[A-Za-z0-9\w]{4,20}/,
}
}
});
请看示例 http://jsfiddle.net/2ma8ec6j/。
如何让jQuery支持HTML5的模式验证?如果不需要在每个字段上指定模式,那就太好了。
我知道我可以这样做(如下),但有更好的方法吗?
$("form").validate({
rules: {
"password": {
pattern: /[A-Za-z0-9\w]{4,20}/,
}
}
});
引言:
"如何让jQuery验证/支持HTML 5模式?"
它已经做到了,详见下文
"如果不在每个字段上指定模式,那就太好了。"
如果您不在某些地方指定这个,它将如何知道哪个模式适用于哪个字段?
"......有更好的方法吗?"
您可以通过内联HTML属性声明一些规则。但是,您可以通过.validate()
或.rules()
方法中的rules
选项声明所有规则。
我不知道这是否更好,因为这纯粹是一种观点,但只要包括additional-methods.js
或pattern.js
文件,jQuery验证插件将捕获并使用HTML5 pattern
属性。
<input type="text" name="somename" pattern="[A-Za-z0-9\w]{4,20}" />
演示: http://jsfiddle.net/fLxgz9dn/
参见: https://github.com/jzaefferer/jquery-validation/issues/785
.validate()
中声明它时可以工作,但是当你内联声明时就不行了?你没有展示出来的其他东西可能会破坏它,所以我们需要等待你在jsFiddle中重现这个问题。 - Sparky
^
(正则表达式始终是完整的match()
样式 - 请参阅 MDN 文档)。 - declension