根据文档 - 例如 - 您可以使用属性指定需要输入元素参数的验证。它说这是推荐的方法。像这样:
<input type="password" minlength="6" maxlength="50"/>
好的,这很容易。现在如何使用html属性指定(例如)范围?
<input type="number" range="[5, 50]"/>
不,这不起作用。没有括号,花括号,花括号和括号或其任何组合。但这种方式完全出乎意料:
<input type="number" range="53"/>
- 它会发出错误消息“号码必须介于5和3之间”
有人可以告诉我正确的语法吗?
注意:这是一个范例。我意识到我可以通过使用
来解决这个特殊问题<input type="number" min="5" max="50"/>
我正在寻找关于如何使用jquery-validate属性API构建复杂验证规则的更一般的答案。
谢谢!
修改
这是另一个例子。如何使用“首选”属性语法执行此操作?
$('form').validate({
rules: {
rt: {
required: function(element) {
return $("#age").val() < 13;
}
}
}
});
以下不起作用:
<form>
<input type="text" id="age" name="age"/>
<input type="text" id="rt" name="rt" required="function(element) { return $('#age').val() < 13;}"/>
<input type="text" id="tabcatcher"/>
<input type="submit"/>
</form>
使用以下jsfiddle播放:
答案 0 :(得分:3)
在更一般的情况下,没有关于可以通过添加类来调用哪些验证的文档,可以通过添加属性和参数/表达式/函数来调用,并且不能通过属性调用。从代码中,这里是一个验证列表,可以通过将它们的名称添加到类列表来调用:
需要
电子邮件
网址
日期
dateISO
数
数字
信用卡
我知道的验证可以通过属性调用:
分钟
最大
MINLENGTH
MAXLENGTH
等于
未知。没有任何语法文档可以使这些工作,也没有文档说它们不起作用:
回调需要表达要求的 远程
由于长期存在错误而无效:
范围
rangelength
答案 1 :(得分:1)
这是插件中已知的问题/错误,正如报告 here 。基本上,插件将53
视为两位数的数组,其中5
为最小值,3
为最大值。
要解决此问题,您需要应用以下补丁:
// Patch by Chris Tierney (CF Webtools 7/13/2011)
// Issue logged at https://github.com/jzaefferer/jquery-validation/issues/112
$.each(['rangelength', 'range'], function() {
if (typeof rules[this] == 'string') {
rules[this] = rules[this].split(",");
}
if (rules[this]) {
rules[this] = [Number(rules[this][0]), Number(rules[this][1])];
}
});