jquery validate的使用技巧

统一加上validate验证,可以包括暂存和真实存储,数据暂存的时候,可以调用setRulesByAttr("form","saveValid")方法验证数据合法性后,提交数据至缓存空间,如memcached.

 /**
* 重置所有input select之类表单项的验证规则
* 接受若干个参数 参数对应相关表单项的自定义属性名,属性值是可以转换为rule的json字串
* 例如:<input saveValid="{required:true}" validateValid="{required:true,number:true}" " type="text" value="" />
* 在调用时至少要有一个参数 是form的ID
* 另外 如果标签的自定义属性ignoreRules是"true"字串 那么这个标签将不会被验证
*例子:<input name="zinv.alimony" saveValid="{number:true}" validateValid="{number:true,required:true}" value="${fn:escapeXml(zinv.alimony)}" type="text" size="10" />元/月
*调用方式: setRulesByAttr("form","saveValid")或setRulesByAttr("form","validateValid");
*/
function setRulesByAttr(formId){
//传入的第一个元素为表单
var frm = $("#" + arguments[0]);
var e = frm.find("input, select, textarea");
// 遍历每个元素
for(var i = 0; i < e.length; i++){
var je = $(e[i]);
// 是否有时间控件
var onf = je.attr("onfocus");
var hasDate = false;
if(onf != null && onf.toString().indexOf("WdatePicker") >= 0)
hasDate = true;

// 清空验证规则
try{
je.rules("remove");
}catch(exx){
//document.ready里必须加上$('#formId...').validate()
alert("移除对象验证规则错,是否缺少$('#formId...').validate()方法\n" + exx.name + "\n" + exx.message);
continue;
}
//如果只传递了一个formId,那么意思就是说取消所有validate验证规则
if(arguments.length <= 1)
continue;

// 判断对象的ignoreRules,true的话,忽略validate验证规则
var irs = je.attr("ignoreRules");
if(irs != null && $.trim(irs) == "true")
continue;

// 遍历所有属性,如'saveValid'属性,
for(var j=1; j<arguments.length; j++){
// rule的属性名
var a = $.trim(arguments[j]);
// 取出属性值
var asv = je.attr(a);
if(asv != null && $.trim(asv).length > 0){
// 将属性值转为rule json
try{
//将json串转换为json对象.
var jr = eval("(" + asv + ")");
if(hasDate){
// 如果有日历控件 那么强制加上时间验证
jr.dateISO = true;
}
// 增加验证规则,这种增加方式出于validate框架支持
je.rules("add", jr);
}catch(ex){
// 转换出错
alert("无法将“" + asv + "”转换成合法的json");
}
}
}
}
}



这样就避免了大量的js验证代码存在于每个不同的页面中!

:)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值