validateEngine 自定于带有参数的验证方法
博客专区 > FelixFly 的博客 > 博客详情
validateEngine 自定于带有参数的验证方法
FelixFly 发表于2年前
validateEngine 自定于带有参数的验证方法
  • 发表于 2年前
  • 阅读 30
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 学生专属云服务套餐 10元起购>>>   

摘要: validateEngine提供了自定义function、ajax以及正则表达式验证,经常会碰到面积、价格以及小数的验证,这个怎么进行自定义呢?

    自定义validateEngine带有参数的验证方法,其中有一个是通过外部的function调用,官网有详细介绍,这里就不啰嗦了。

    

funcCall validate[funcCall[functionName]] 调用外部函数验证

functionName(field, rules, i, options)

    另一种方法进行修改jquery.validateEngine.js方法,首先在验证规则中添加你定义的规则名称,如numberRange[int,int]表示验证小数的整数部分长度以及小数精度。

1>在_validityProp里面加上要验证的属性

"numberRange": "range-overflow",

2>在_validateField方法中添加rules规则validate。

case "numberRange":
   errorMsg = methods._getErrorMessage(form, field,rules[i], rules, i,
    options, methods._numberRange);
   break;

   3>添加_numberRange方法以及_numberRegex方法

/**
 * Checks number range
 *
 * @param {jqObject} first field name
 * @param {jqObject} second field name
 * @return an error string if validation failed
 */
_numberRange: function (field, rules, i, options) {
   var _int = parseFloat(rules[i + 1]);
   var _digit = parseFloat(rules[i + 2]);
   if(_int < 1 || _digit < 1){
      return options.allrules[rules[i]].alertText+_int+options.allrules[rules[i]].alertText2
      +_digit+options.allrules[rules[i]].alertText3;
   }
   if (!methods._numberRegex(field.val(),_int,_digit)) {
      return options.allrules[rules[i]].alertText+_int+options.allrules[rules[i]].alertText2
      +_digit+options.allrules[rules[i]].alertText3;
   }
},
_numberRegex: function (value,_int, _digit) {
   var values = value.split(".");
   var intRegEx = new RegExp(/^\d+$/);
   if(parseFloat(values[0].length) <= 0 || parseFloat(values[0].length) > _int){
      return false;
   }
   if(values[1]){
      if(parseFloat(values[1].length) <= 0 || parseFloat(values[1].length) > _digit)
      {
         return false;
      }
      if(!intRegEx.test(values[1]))
      {
         return false;
      }
   }
   return intRegEx.test(values[0]);
},

  4>在jquery.validationEngine-zh_CN.js  添加提示的验证信息

"numberRange": {
    "regex": "none",
    "alertText": "* 无效的数值(",
    "alertText2": ",",
    "alertText3": ")",
}

    5>在JSP中class中直接写入就可以验证了

class="validate[numberRange[1,2]]"


共有 人打赏支持
粉丝 4
博文 4
码字总数 1331
×
FelixFly
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: