本文实例为大家分享了jquery表单验证插件,供大家参考,具体内容如下
//正则表达式 var map = new Map(); map.put("*", /[\w\W]+/); map.put("*6-16", /^[\w\W]{6,16}$/); map.put("n", /^\d+$/); map.put("n6-16", /^\d{6,16}$/); map.put("s", /^[\u4E00-\u9FA5\uf900-\ufa2d\w\.\s]+$/); map.put("s6-16", /^[\u4E00-\u9FA5\uf900-\ufa2d\w\.\s]{6,16}$/); map.put("p", /^[0-9]{6}$/);//邮编 map.put("m", /^13[0-9]{9}$|14[0-9]{9}|15[0-9]{9}$|18[0-9]{9}$/);//手机号码 map.put("e", /^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/);//email map.put("url", /^(http|https):\/\/(\w+:\/\/)"image", /^(http|https):\/\/.*(.JPEG|.jpeg|.JPG|.jpg|.GIF|.gif|.BMP|.bmp|.PNG|.png)$/);//图片 map.put("integer", /^[1-9]\d*$/);//大于0的正整数 map.put("hj", /(\S*"-"); var nums =new Array(); nums[0] = datatype.substring(1,index); nums[1] = datatype.substring(index+1,datatype.length); //替换数字 var reg; switch (datatype.substring(0,1)) { ///^[\w\W]{6,16}$/ case "*": reg = new RegExp("^[\\w\\W]{"+nums[0]+","+nums[1]+"}$"); break; case "n": reg = new RegExp("^\\d{"+nums[0]+","+nums[1]+"}$"); break; case "s": reg = new RegExp("^[\\u4E00-\\u9FA5\\uf900-\\ufa2d\\w\\.\\s\\\\/]{"+nums[0]+","+nums[1]+"}$"); break; } return reg; }else{ return map.get(datatype); } } } })(jQuery,window); HaHaUtil = { checkFrom : function(formId){ var form = $("#"+formId)[0]; //遍历表单下面的元素 for(var i=0;i<form.length;i++){ if(!HaHaUtil.resultCheck(form[i])){ return false; } } return true; }, resultCheck : function(obj){ var tagName = obj.tagName; switch(tagName) { case "INPUT": case "TEXTAREA": $item = $(obj); var dataType = $item.attr("dataType"); //没有验证标签 就不校验了 if(dataType == null){ return true; }else{ //获取 dataType 可以有多个验证用|分割开 var reType = dataType.split("|"); //把表单值前后的空格去掉 var f_value = $item.val(); if(f_value.indexOf(" ")!=-1){ //说明有空格 也有可能中间有空格 中间有空格就不会去掉 $item.val($.trim(f_value)); } var tipId = $item.attr("tipId"); $("#"+tipId).html(""); for(var i=0;i<reType.length;i++){ //如果第一个正则是 empty 说明是可以没值 //如果有值 在根据正则校验 if(reType[i] == "empty"){ if($item.val() == ""){ //就不校验了 return true; break; }else{ //继续校验 continue; } } if($("."+tipId).is(":hidden")){ //如果是隐藏的菜单不校验 continue; } //获取返回的正则表达式 var reg = Validform.matchReg(reType[i]); if(!reg.test($item.val())){ //判断不通过 $("#"+tipId).html($item.attr("errormsg")); return false; break; }else{ //判断通过 继续校验 continue; } } return true; } break; //没有匹配到标签就返回false default : return true; } } } Array.prototype.remove = function(s) { for (var i = 0; i < this.length; i++) { if (s == this[i]) this.splice(i, 1); } } function Map() { /** 存放键的数组(遍历用到) */ this.keys = new Array(); /** 存放数据 */ this.data = new Object(); /** * 放入一个键值对 * @param {String} key * @param {Object} value */ this.put = function(key, value) { if(this.data[key] == null){ this.keys.push(key); } this.data[key] = value; }; /** * 获取某键对应的值 * @param {String} key * @return {Object} value */ this.get = function(key) { return this.data[key]; }; /** * 删除一个键值对 * @param {String} key */ this.remove = function(key) { this.keys.remove(key); this.data[key] = null; }; /** * 遍历Map,执行处理函数 * * @param {Function} 回调函数 function(key,value,index){..} */ this.each = function(fn){ if(typeof fn != 'function'){ return; } var len = this.keys.length; for(var i=0;i<len;i++){ var k = this.keys[i]; fn(k,this.data[k],i); } }; /** * 获取键值数组(类似Java的entrySet()) * @return 键值对象{key,value}的数组 */ this.entrys = function() { var len = this.keys.length; var entrys = new Array(len); for (var i = 0; i < len; i++) { entrys[i] = { key : this.keys[i], value : this.data[i] }; } return entrys; }; /** * 判断Map是否为空 */ this.isEmpty = function() { return this.keys.length == 0; }; /** * 获取键值对数量 */ this.size = function(){ return this.keys.length; }; /** * 重写toString */ this.toString = function(){ var s = "{"; for(var i=0;i<this.keys.length;i++,s+=','){ var k = this.keys[i]; s += k+"="+this.data[k]; } s+="}"; return s; }; }
这个是一个js插件保存.js引用就可以了,特点灵活可以自定义校验内容原理使用正则表达式,对于隐藏的表单不校验
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <%@ include file="/common/taglibs.jsp"%> <%@page contentType="text/html;charset=UTF-8"%> <%@page pageEncoding="UTF-8"%> <html> <head> <title>新建商品</title> <script type="text/javascript" src="/UploadFiles/2021-04-02/common_functions.js">这个是html的用法不用考虑其他的就是html代码
function validateForm1(){ var flag=HaHaUtil.checkFrom('detailDataForm'); return flag; }这个是from表单之前的数据校验的函数。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
标签:
jquery,表单验证
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“jquery自定义表单验证插件”评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新动态
2024年11月14日
2024年11月14日
- 魔兽世界wlk暗牧一键输出宏是什么 wlk暗牧一键输出宏介绍
- 群星.1996-红不让台语原唱2辑【福和唱片】【WAV+CUE】
- 郭书瑶.2009-爱的抱抱(EP)【种子音乐】【FLAC分轨】
- 郑瑞芬.1989-BE.MY.BABY【现代】【WAV+CUE】
- 花钱请人每周放30万只不咬人的蚊子 防治登革热传播
- 饭制《第一后裔》丧尸版弗蕾娜
- 贝克汉姆亲临!2024FC品类游戏嘉年华圆满落幕
- 「命轨爻错之翼」风之翼发放说明
- 《原神》前瞻特别节目回顾长图
- 米游币抽抽乐-原神专场现已开启!
- 黑鸭子2001《风情中国HQCD》[日本版][WAV+CUE]
- 陈杰洲1990-成人礼[滚石][WAV+CUE]
- MarkAanderud-HandsFree(2024)[24-44,1]FLAC
- 孙露《观心》1:1母盘直刻限量版[低速原抓WAV+CUE][361M]
- 钟志刚《汽车DJ玩主》[低速原抓WAV+CUE][1G]