【问题标题】:custom function in JQuery validation engine with argumentsJQuery 验证引擎中的自定义函数与参数
【发布时间】:2025-12-20 19:20:18
【问题描述】:
我想为JQuery Validation Engine 编写一个新的验证规则。看来您所要做的就是编写这样的函数:
"myNewRule":
"func": function(field, rules, i, options){
//new validation function
},
"alertText": "message to be displayed if something goes wrong"
},
现在,有谁知道我如何访问字段 id(或名称)或如何传递参数?我需要验证字段 B 的值不小于字段 A,因此了解我应该与哪个字段进行比较非常重要...
【问题讨论】:
标签:
jquery
validation
jquery-validation-engine
【解决方案1】:
好的,我想通了。
- 第一个参数(即字段)是一个字段对象,因此可以在其上调用 jQuery 的方法,例如您使用
field.val() 获取字段值。
- 第二个参数是一个数组,其中包含您为该字段选择的所有规则,它们以逗号分隔,并且该数组不包括括号 [] 和逗号。
-
i+1 为您提供 rules 数组中规则开始的位置,如果您有参数,它会非常有用。
- 最后一个参数包含有关表单中验证规则的所有信息,但您实际上并不需要它。
我需要验证一个字段的值是否大于另一个,所以我做了以下操作:
javascript:
function geThan(field, rules, i, options){
var a=rules[i+2];
if(parseFloat(field.val()) < parseFloat( jQuery("#"+a).val() ) ){
return "Value is smaller than a, and should be greater than or equal to it."
}
}
html 是:
<input type="text" id="porce_1" name="porce_1" data-validation-engine="validate[required,custom[number],min[0],max[100]]">
<input type="text" id="porce_2" name="porce_2" data-validation-engine="validate[required,custom[number],min[0],max[100],funcCall[geThan[porce_1]]]">
我没有像我最初想的那样将代码放在插件中,而是放在我页面的 head 部分并改用funcCall。