主页 > 前端 > javascript >
来源:自学PHP网 时间:2023-07-07 09:28 作者: 阅读:次
[导读] Validator是jquery一个名字表单验证类,但发现jquery的代码比较多自己觉得不好用,于是找到一个封装了个原生的js表单验证,下面我来给各位介绍介绍。...
功能点: 1.原生js,不依赖任何库 2.动态添加验证规则 3.设置是否实时报错 4.错误提示的样式,单条显示还是合并显示,以及函数形式 5.遇到错误是否停止接下来的验证 6.常用验证,邮箱,字符串,手机,以及两个字段进行比较的验证,支持自定义正则 7.单条验证规则失败后的提示信息,支持字符串或者函数 使用说明: 代码如下 复制代码 var F = Validator('form表单name值',{ together : false, //默认遇错误打断,显示单条错误信息,默认为false(只显示一条) errShow : 'alert', //错误提示,默认为alert,支持字符串(alert,single,multiple),自定义function(string || array()) errBox : 'error_strings', //错误消息class,默认为form表单中的 .error_strings errPar : 'li', //单个表单元素的父级元素,用于定位错误的位置 li > (span > input ) ~ span.error_strings timely : false //实时判断,是否失去焦点以及change判断 }); //添加验证规则,传参为二位数组 F.addRule([ ["username","required",'姓名不能为空'], ["username","regex=/^[A-Za-z]+$/",'只能是a-z'], ["username","minlength=3",'姓名必须大于3个字符'], ["username","maxlength=10",'姓名必须小于10个字符'], ["email","required",'邮箱必填'], ["email","email",'邮箱格式'] ]); 其中第三个参数可以是function,比如 代码如下 复制代码 F.addRule([ ["username","required",function(){ alert('姓名不能为空') }], ..... ]); 全局的报错也支持function(接收参数为错误的数组), 代码如下 复制代码 errShow : function(data){ var wrongList = document.getElementById('wrongList'), html = []; wrongList.innerHTML = ''; for(var i =0; i '+data[i].msg+''); } wrongList.innerHTML = html.join(''); } API regex : 正则, (regex=/^[A-Za-z]+$/ ) required : 必填内容,针对input,textarea minlength : 最小字符长度 (minlength=3) maxlength : 最大字符长度 (maxlength=10) number : 数字 alpha : 字母(大小写都可) string : 字母,数字,下划线 email : 邮件格式 telphone : 电话 mobile : 手机 greaterthan : 大于某个值,或者某个input中的值 (greaterthan=5 或者 greaterthan=字段名 ) lessthan : 小于某个值,用法同上 equal : 等于某个值,或者数组(数组以|分隔)中的某个值,或者字段 (equal=66 或者 equal=字段名 或者 equal='aa|bb|cc' ) unequal : 不等于某个值,用法同上 notselect :不能选择的值,指的是select中option的value,或者 radio/checkbox数组中某一个的value (notselect=字符串或者数字或者数组) shouldselect : 必须选中,用法同上 minselect : 最少选中几项 maxselect : 最多选择几项 例 代码如下 复制代码 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> JavaScript form validator Example </title> <style type="text/css"> html,body,div,form,ul,li,h1{margin:0;padding:0;font-size: 12px;} ul{list-style: none;} .inlineWrap{letter-spacing: -0.31em;*letter-spacing: normal;*word-spacing: -0.43em;} .inlineBlock{display: inline-block;zoom: 1;*display: inline;letter-spacing: normal;word-spacing: normal;vertical-align: top;} #wrap{padding:30px;} #wrap h1{background: #0866c6;font-family: 'Microsoft YaHei';font-size: 24px;line-height: 40px;color: #fff;padding-left: 20px;} /*form list start*/ .formList{padding:20px;} .formList li{position:relative;display: block;margin-top: 10px;overflow: hidden;} .formList li label{width:170px;text-align:right;color:#0866c6;display: inline-block;line-height: 30px;float:left;} .formList li span{display:block;margin-left: 190px;line-height: 30px;} textare, input{display:inline-block;height:20px;padding:4px 6px;line-height:20px;color:#555555;vertical-align:middle;-webkit-border-radius: 0;-moz-border-radius: 0;border-radius: 0;outline:none;max-width:90%;width:200px;} textarea, input, select{background-color:#ffffff;border:1px solid #cccccc;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;} select{padding:5px;font-size:12px;color:#555;border:1px solid #ccc;} textarea:focus,input:focus,select:focus{border-color:rgba(82,168,236,0.8);border-color:#0866c69;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);} input[type=radio]:focus{box-shadow: none;} .btn{font-size:12px;border:1px solid #bbb;background: #0866c6;color: #fff;text-decoration:none;height:30px;vertical-align: baseline;width:100px;cursor: pointer;} .btn:hover{background: #1b58b8;color: #fff;} .error_strings{padding:10px;color: #db4f33;line-height: 20px;font-size: 12px;border: 10px solid #0866c6;display: none;position: fixed;top:90px;left:600px;} .formList li span label{display: inline-block;color: #000;font-weight: normal;width:auto;margin-right: 10px;} .formList li span label input{width: auto;} .formList li .error_strings{display: inline-block;margin:0;padding:0;background: none;border:none;border-left:5px solid #db4f33;line-height: 14px;padding-left: 5px;margin-left: 10px;position: relative;top:0px;left:0px;} #wrongList{width:200px;display: inline-block;margin: 50px;} #wrongList li{width:100%;background:#3B70E1;color: #fff;padding:5px 10px;line-height: 18px;margin: 5px 0px;} .setting {padding-top:30px;} .setting label{width:auto;} .setting label input{width:auto;} </style>
</head>
<body> <div id="wrap" class="inlineWrap"> <div class="inlineBlock" style="width:600px;float:left;"> <h1>Form Validator</h1> <div class="setting formList" style="overflow: hidden;border-bottom: 1px solid #ececec;"> <div style="float:left;width:300px;"> <div> <label><input type="radio" value="0" name="shownum" checked>只显示一条错误</label> <label><input type="radio" value="1" name="shownum">显示多条</label> </div> <div><label><input type="radio" value="1" name="timely" checked>实时显示</label></div> <div> <label><input type="radio" value="alert" name="wrongtype" checked>alert</label> <label><input type="radio" value="single" name="wrongtype">单条显示</label> <label><input type="radio" value="multiple" name="wrongtype">合并显示</label> <label><input type="radio" value="function" name="wrongtype">函数</label> </div> <input type="button" class="btn" value="重新初始化" onclick="initV()"> </div> <div style="margin-left: 300px;line-height: 20px;color: green;font-weight: bold;"> 默认设置:<br/> 只显示一条错误信息<br/> 实时显示关闭<br/> 报错样式为alert </div> </div> <form action="/" name="myform" id="myform"> <ul class="formList">
<li> <span> <input type="submit" class="btn" value="Submit" /> </span> </li>
<li> <label>姓名</label> <span> <input type="text" name="username" /> </span> </li> <li> <label>邮箱</label> <span> <input type="text" name="email" /> </span> </li> <li> <label>电话</label> <span> <input type="text" name="telphone" /> </span> </li> <li> <label>手机</label> <span> <input type="text" name="mobile" /> </span> </li> <li> <label>URL</label> <span> <input type="text" name="url" /> </span> </li> <li> <label>数字(5-10)</label> <span> <input type="text" name="than" /> </span> </li> <li> <label>大于上面</label> <span> <input type="text" name="greaterPrev" /> </span> </li> <li> <label>等于66</label> <span> <input type="text" name="equalNum" /> </span> <li> <label>等于上面</label> <span> <input type="text" name="equalPrev" /> </span> </li> <li> <label>不能等于99</label> <span> <input type="text" name="unequalNum" /> </span> </li> <li> <label>不能等于上面</label> <span> <input type="text" name="unequalPrev" /> </span> </li> <li> <label>不能等于11,22,33</label> <span> <input type="text" name="unequalArr" /> </span> </li> <li> <label>不能等于aa,bb,cc</label> <span> <input type="text" name="unequalArrStr" /> </span> </li> <li> <label>只能从ab,ac,ad中取</label> <span> <input type="text" name="equalArr" /> </span> </li> <li> <label>不能选择第一项0</label> <span> <select name="select"> <option value="0">请选择</option> <option value="1s">选我吧</option> <option value="2">选谁呀</option> </select> </span> </li> <li> <label>必须选中第一个,不能选第三个</label> <span> <label><input type="checkbox" name="checkNum" value="1" />第一项</label> <label><input type="checkbox" name="checkNum" value="2" />第二项</label> <label><input type="checkbox" name="checkNum" value="3" />第三项</label> </span> </li> <li> <label>必须选中第1,3个</label> <span> <label><input type="checkbox" name="checkMore" value="1" />第一项</label> <label><input type="checkbox" name="checkMore" value="2" />第二项</label> <label><input type="checkbox" name="checkMore" value="3" />第三项</label> <label><input type="checkbox" name="checkMore" value="4" />第四项</label> </span> </li> <li> <label>选中数大于2,小于4(不能选择1,2)</label> <span> <label><input type="checkbox" name="checkLen" value="1" />第一项</label> <label><input type="checkbox" name="checkLen" value="2" />第二项</label> <label><input type="checkbox" name="checkLen" value="3" />第三项</label> <label><input type="checkbox" name="checkLen" value="4" />第四项</label> <label><input type="checkbox" name="checkLen" value="5" />第五项</label> <label><input type="checkbox" name="checkLen" value="6" />第六项</label> <label><input type="checkbox" name="checkLen" value="7" />第七项</label> </span> </li> <li> <label>必选,不能选中3</label> <span> <label><input type="radio" name="checkRadio" value="1" />第一项</label> <label><input type="radio" name="checkRadio" value="2" />第二项</label> <label><input type="radio" name="checkRadio" value="3" />第三项</label> <label><input type="radio" name="checkRadio" value="4" />第四项</label> <label><input type="radio" name="checkRadio" value="5" />第五项</label> <label><input type="radio" name="checkRadio" value="6" />第六项</label> <label><input type="radio" name="checkRadio" value="7" />第七项</label> </span> </li>
<li> <label>必填</label> <span> <textarea name="textarea"></textarea> </span> </li> <li> <span> <input type="submit" class="btn" value="Submit" /> </span> </li> </ul> </form> </div> <div class="inlineBlock" style="display: block;margin-left: 650px;"> <ul id="wrongList"> </ul> </div> </div>
<script language="JavaScript" src="validator.min.js" type="text/javascript"></script> <script language="JavaScript" type="text/javascript"> document.forms['myform'].onsubmit = function(){ alert ('已经通过验证,要进行提交操作'); return false; } //errShow : function(data){ // var wrongList = document.getElementById('wrongList'), html = []; // wrongList.innerHTML = ''; // for(var i =0; i < data.length ; i += 1){ // html.push('<li>'+data[i].msg+'</li>'); // } // wrongList.innerHTML = html.join(''); / |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com