带有参数的JQuery验证引擎中的自定义函数

时间:2013-05-22 18:41:28

标签: jquery validation jquery-validation-engine

我想为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,因此知道我应该将哪个字段与...进行比较非常重要。

1 个答案:

答案 0 :(得分:10)

好的,我明白了。

  • 第一个参数(即字段)是一个字段对象,因此可以在其上调用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代替。