5

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

4

1 回答 1

12

好吧,我想通了。

  • 第一个参数(即字段)是一个字段对象,因此可以在其上调用 jQuery 的方法,例如您field.val()用来获取字段值。
  • 第二个参数是一个数组,其中包含您为该字段选择的所有规则,它们以逗号分隔,并且该数组不包括括号 [] 和逗号。
  • i+1为您提供规则数组中规则开始的位置,如果您有参数,它会非常有用。
  • 最后一个参数包含有关表单中验证规则的所有信息,但您并不真正需要它。

我需要验证一个字段是否比另一个字段具有更大的值,因此我执行了以下操作:

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]]]">

我并没有像我最初想的那样将代码放在插件中,而是放在页面的头部并funcCall改为使用。

于 2013-07-11T04:06:04.797 回答