一个简易的表单校验插件wv.js
来源:互联网 发布:全国省市区街道数据库 编辑:程序博客网 时间:2024/05/22 10:45
很多网站都有登陆和注册功能,只要涉及到登陆和注册的几乎全部都要用到表单,而表单在提交前,需要对输入进行校验,验证输入长度,类型等等是否合法,目前常用的就是jQuery-validate.js这个插件。其实这些插件的实现眼里都是比较简单的,主要用到input标签的focus和blur事件,然后在这个事件触发的时候通过正则表达式对输入的值进行检验,然后返回校验结果。
现在我们就来实现一个简单的表单校验器
/** * author:yangyangwang * desc:表单验证插件 */(function(window,$){ var wv = function(){ } wv.prototype={ valid:true, version:"1.0.0", name:"wv", desc:"表单验证插件", rules:{ "noEmpty":{ rules:function(value,title){ if(!value){ return title+"不能为空" } } }, "Number":{ rules:function(value,title){ if(!value){ return title+"不能为空" }else{ if(!/^[0-9]*$/.test(value)){ return title+"只能是数字" } } } } }, addRules:function(option){ //检验option是否合法 if($.type(option)){ }else{ throw new Error("规则不合法!") return; } this.rules=$.extend(this.rules, option); }, init:function(option){ var defaultOption = { color:"red",//提示字体颜色 border:"0px solid red", left:"40%", top:"2px" }; var option = $.extend(defaultOption,option); var self = this; $("input[validate]").on("focus",function(e){ var ev = e||event; var target = ev.target; $(target).siblings(".tip").remove();//当输入框激活时移除提示文字 $(target).css({//当输入框激活时如果之前处于错误提示样式则恢复到激活样式 border:'1px solid cornflowerblue', boxShadow:'0px 0px 5px cornflowerblue' }) }); $("input[validate]").on("blur",function(e){//输入框失去焦点的时候进行输入验证 var ev = e||event; var target = ev.target; var ruleStr = $(target).attr("validate"); var rulesArr = ruleStr.split(" "); for(var i = 0;i<rulesArr.length;i++){ var msg = self.validMethod(rulesArr[i],target); if(msg){ var tip = document.createElement("span"); tip.className = "tip"; tip.innerText = msg; $(target).after($(tip)); $(tip).css({ position:"relative", dispaly:"inline-block", minWidth:"80px", padding:"3px", height:"25px", lineHeight:'center', background:'rgba(0,0,0,0)', color:option.color, border:option.border, borderRadius:"3px", fontWeight:"600", fonSize:"13px", left:option.left, top:option.top }); target.style.border="1px solid #ed8464"; target.style.boxShadow="0px 0px 5px #dc3b33"; this.valid = false; break; } else{ target.style.border="1px solid #558630"; target.style.boxShadow="0px 0px 0px"; } } }) }, validMethod:function(rule,obj){ var msg = ""; var title = $(obj).attr("title")||"该输入项"; var value = $(obj).val(); if(this.rules[rule]){ try{ msg = this.rules[rule].rules(value,title); }catch(e){ throw new Error("校验规则不合法") } } return msg; } } wv.prototype.init.prototype = wv.prototype;//这句的目的是为了让init中的this和mv.prototype中的this是同一个对象。参考jquery中的实现; window.wv = wv;})(window,$)
插件是基于jquery的,所有在用这个插件前要保证jquery已经加载
下面是效果图
noEmpty:
Number:
Success:
这里只内置了noEmpty和Number两种校验,如果需要其他校验可以通过addRules方法添加检验规则
阅读全文
0 1
- 一个简易的表单校验插件wv.js
- js校验表单插件
- 一个比较完善表单校验插件
- 一个比较完善表单校验插件(续)----自以为算是比较全面的校验规则
- jQuery的表单校验插件validate
- jQuery的表单校验插件validate(转)
- 简易密码校验js
- jquery表单校验插件
- Validform表单校验插件
- 个人编写的一个JS表单验证插件
- 使用JS完成表单的校验
- 一个不错的 js 校验
- 常用表单校验JS
- JS 表单校验
- 表单校验html+js
- JS校验表单项
- js校验表单数据
- js之表单校验
- title: Servlet基础(一):servlet的生命周期
- 原声JS中indexOf()方法在数组中的应用一
- HTML5(2)__初识H5
- linux下PS1命令提示符设置
- Android TextView设置图标,调整图标大小
- 一个简易的表单校验插件wv.js
- 这个是在liunx上安装JDK,MAVEN,还有TOMCAT和Jenkins
- 五大流浏览器内核及其代表
- 专业量化交易从业人士如何看待传统的技术分析?
- Java反射详解
- POJ1128 Frame Stacking(拓扑排序+dfs)
- iOS Widget开发
- Machine Learning On Spark——基础数据结构(二)
- ERROR 126 (HY000) at line 1: Incorrect key file for table '/tmp/#sql_7b09_0.MYI'; try to repair it