用easyui做业务系统,对于默认的几个验证规则,肯定是不够的,难免会增加几种规则。可是问题来了,往往是我们在开发会遇到很多各种各样的验证,时间久了才发现,这些扩展的正则无非就是添加一个正则验证规则,那我为啥不将正则放到前端呢?想到这个说干就干,于是有了REGEX这个验证规则,愉快的调用几次后,感觉这功能还不错,心里贼爽了下。一段时间后,发现有些验证居然还和数据业务有关系,这下问题又来,难道我又要些一堆的规则!到底能不能象我的正则验证一样统一呢。果不其然,在苦思冥想半小时后,我这FUN验证规则浮出水面。
//自定义正则验证
REGEX: {
validator: function (value, param) {
var regex = param[0];
var re = new RegExp(regex);
return re.test(value);
},
message: '{1}'
},
//自定义函数验证
FUN: {
validator: function (value, param) {
var fun = param[0];
if ($.isFunction(fun)) {
return fun(value);
}
return true;
},
message: '{1}'
},
解释一下,$.extend($.fn.validatebox.defaults.rules,{}),这里可以扩展很多规则,当然现在又了 REGEX 和 FUN 规则,感觉可以不用写其他的规则了,小小满足一下。
哇,功能这么强大,那我要怎么使用呢?
FUN:
<label for="F_FPSL" class="input_lable ">发票税率(%)</label><input type="text" name="F_FPSL" class="easyui-textbox input_box" data-options="width:107,prompt:'多个税率逗号隔开',validType:{FUN:[Jsdwxx.validatafpsl,'发票税率只能录入数字']}" />
REGEX:
<label for="F_SBDQ" class="input_lable ">上报地区</label><input type="text" name="F_SBDQ" class="easyui-textbox input_box" data-options="width:132,prompt:'例如:ZYCC',validType:{REGEX:['^[A-Za-z]{4}$','上报地区为4个字母']},boxCls:'uppercase'" /></li>
PS:规则中 {0},{1},{...}和前台定义REGEX:[0,1,...]一一对应