自己定义的验证框架
2014-04-10 11:04
309 查看
自己没事弄的一个验证框架。也不复杂,仅仅是为了试验自己心中的一点想法。。
可以研究一下,还是挺有意思的。
可以研究一下,还是挺有意思的。
/* input文本框的验证方法 obj:要验证的input控件id或者class(jquery写法) options:传入的参数 */ var AKvaluedat = function (obj, options) { var defaults = { "rule": "number" //检测类型 , "min": 1 //最小值 , "max": 1000 //最大值 , "null": true //是否空 , "null": { "def": 1 } //是否空 , "large": "#ceshi2" //大于 , "small": "#ceshi3" //小于 , "err": "" //错误信息容器 , "errShow": true //是否显示错误信息 , "minlength": 5 //文本长度 , "maxlength": 10 //文本长度 , "sync": "#ceshi3" //与另一个比较 , "func": null //验证完成之后执行的方法 } //test //var options = defaults; var obj = $(obj); if (!obj || typeof (obj) != "object") return; var quens = []; //初始解除事件绑定 obj.unbind("keyup blur keypress"); //追加错误信息显示 var err = null; if (options.err) { err = $(options.err); } else { if (obj.next("span").length == 0) { err = $("<span style='color:#bb0000' class='msg'>"); err.insertAfter(obj); } else { err = obj.next(); } } if (!options.errShow) { err = $("<span>"); } //检测类型 if (options.rule) { switch (options.rule) { case "number": quens.push(isNumber); obj.bind("keypress", function (e) { if (e.which < 48 || e.which > 59) { return false; } }); break; case "decimal": quens.push(isDecimal); obj.bind("keypress", function (e) { if (e.which != 46) { if (e.which < 48 || e.which > 59) { return false; } } }); break; } } //检测整数数字 function isNumber() { if (!obj.val().isNumber()) { if (options.null && options.null.def) { obj.val(options.null.def); } err.text("请输入数字"); bl = false; } } //检测小数 function isDecimal() { if (!obj.val().isDecimal()) { if (options.null && options.null.def) { obj.val(options.null.def); } err.text("请输入数字"); bl = false; } } //检测最小值 function isMin() { if (parseInt(obj.val()) < options.min) { err.text("请输入大于等于" + options.min + "的值。"); bl = false; } } //检测最大值 function isMax() { if (parseInt(obj.val()) > options.max) { err.text("请输入小于等于" + options.max + "的值。"); bl = false; } } //检测空值 function isNNull () { if (obj.val().isNull()) { if (options.null.def) { obj.val(options.null.def); bl = false; } else { err.text("请不要填写空值"); bl = false; } } } //检测大于 function isLarge () { if (parseInt(obj.val()) < parseInt($(options.large).val())) { err.text("请不要小于之前的数值"); bl = false; } } //检测小于 function isSmall () { if (parseInt(obj.val()) > parseInt($(options.small).val())) { err.text("请不要大于之后的数值"); bl = false; } } //检测长度 function isMinLength () { if (!obj.val().min(options.minlength)) { err.text("请填入长度不小于" + options.minlength + "的文本"); bl = false; } } function isMaxLength () { if (!obj.val().max(options.maxlength)) { err.text("请填入长度不大于" + options.maxlength + "的文本"); bl = false; } } //检测是否一样 function isSync () { if (obj.val() != $(options.sync).val()) { err.text("两次输入的不一样"); bl = false; } } //讲方法加入队列 if (options.min) quens.push(isMin); if (options.max) quens.push(isMax); if (options.null) quens.push(isNNull); if (options.large) quens.push(isLarge); if (options.small) quens.push(isSmall); if (options.minlength) quens.push(isMinLength); if (options.maxlength) quens.push(isMaxLength); if (options.sync) quens.push(isSync); if (options.func) quens.push(options.func); //讲队列绑定 obj.bind("keyup blur", function () { var bl = true; //obj.next().text(""); err.text(""); for (var i in quens) { if (bl) quens[i](); } }); }
相关文章推荐
- 在 Kuix 框架下绘制自己定义的画布
- jquery.validate自己定义验证--成功提示与择要提示
- easyUI 验证控件应用、自己定义、扩展验证 手机号码或电话话码格式
- 在 Kuix 框架下绘制自己定义的画布
- 手把手教你自己写一个js表单验证框架
- 2.RPC框架的简单实现(定义自己的ldubbo命名空间)
- 自己写的jQuery下的验证框架,支持自定义验证函数,支持自定义错误显示效果
- Rails框架技术讲座:如何定义自己的Rails应用软件入门位置
- 手把手教你自己写一个js表单验证框架的方法
- Struts2自己定义拦截器实例—登陆权限验证
- Struts2自己定义拦截器实例—登陆权限验证
- Struts2自己定义拦截器实例—登陆权限验证
- Struts2自己定义拦截器实例—登陆权限验证
- Struts2自己定义拦截器实例—登陆权限验证
- Struts2自己定义拦截器实例—登陆权限验证
- android ui定义自己的dialog(项目框架搭建时就写好,之后事半功倍)
- 一个自己编写的验证框架.
- 猫猫学iOS 之微博项目实战(2)微博主框架-自己定义导航控制器NavigationController
- 手把手教你自己写一个js表单验证框架
- MVC下,修改用户验证为自己定义的数据表