蓝戒博客

  • 首页
  • 研发说
  • 架构论
  • 效能录
  • AI谈
  • 随笔集
智构苍穹
AI为翼,架构为骨,文化为魂,实践探新境,价值筑长青。
  1. 首页
  2. 研发说
  3. 正文

强大的jquery表单验证插件jquery validate

2015年4月13日 6391点热度 0人点赞 0条评论

一、为何选择jquery validate这个表单验证插件

自己写一个通用没有bug而且强大的jquery表单验证插件并不容易,jquery validate表单验证插件功能强大通用好用,jquery validate这个jquery插件几乎可以轻松应对95%以上的表单验证。

二、jquery validate表单验证如何调用?

1、引用jquery.min.js和jquery.validate.js

由于jquery.validate.js是jquery插件,需要依赖jquery支持,因此必须先引用jquery.min.js再引用jquery.validate.js。

2、页面js引用代码如下:

$(function(){
	//$('.js-form') 是你的表单的类名或者 id,如果是id的话就是 $('#js-form')
    //submitHandler 就是表单验证通过的时候执行里面的函数
	$('.js-form').validate({ 		
		submitHandler: function (form) {
            var $form = $(form),
                data = $form.serialize();     //序列化表单数据
            //这里是jquery表单验证通过的时候执行的操作,比如这里,表单验证通过的时候执行了jquery的ajax的post操作      
            $.post('js/test.json',{data:data},function(d){
                if(d.Flag){
                    alert("如果返回为真,将执行这里代码")               
                }else{

                }
            },'json');
		}
	});
})

表单验证实例:

<script>
$(function(){
//jquery.validate
$("#jsForm").validate({
submitHandler: function() {
//验证通过后 的js代码写在这里
}
})
})

//下面是一些常用的验证规则扩展

//配置错误提示的节点,默认为label,这里配置成 span (errorElement:'span')
$.validator.setDefaults({
errorElement:'span'
});

//配置通用的默认提示语
$.extend($.validator.messages, {
required: '未填写',
equalTo: "密码不一致"
});

//邮箱
jQuery.validator.addMethod("mail", function (value, element) {
var mail = /^[a-z0-9._%-]+@([a-z0-9-]+\.)+[a-z]{2,4}$/;
return this.optional(element) || (mail.test(value));
}, "邮箱格式不对");

//电话验证规则
jQuery.validator.addMethod("phone", function (value, element) {
var phone = /^0\d{2,3}-\d{7,8}$/;
return this.optional(element) || (phone.test(value));
}, "电话格式如:0371-68787027");

//区号验证规则
jQuery.validator.addMethod("ac", function (value, element) {
var ac = /^0\d{2,3}$/;
return this.optional(element) || (ac.test(value));
}, "区号如:010或0371");

//无区号电话验证规则
jQuery.validator.addMethod("noactel", function (value, element) {
var noactel = /^\d{7,8}$/;
return this.optional(element) || (noactel.test(value));
}, "电话格式如:68787027");

//手机验证规则
jQuery.validator.addMethod("mobile", function (value, element) {
var mobile = /^1[3|4|5|7|8]\d{9}$/;
return this.optional(element) || (mobile.test(value));
}, "手机格式不对");

//邮箱或手机验证规则
jQuery.validator.addMethod("mm", function (value, element) {
var mm = /^[a-z0-9._%-]+@([a-z0-9-]+\.)+[a-z]{2,4}$|^1[3|4|5|7|8]\d{9}$/;
return this.optional(element) || (mm.test(value));
}, "格式不对");

//电话或手机验证规则
jQuery.validator.addMethod("tm", function (value, element) {
var tm=/(^1[3|4|5|7|8]\d{9}$)|(^\d{3,4}-\d{7,8}$)|(^\d{7,8}$)|(^\d{3,4}-\d{7,8}-\d{1,4}$)|(^\d{7,8}-\d{1,4}$)/;
return this.optional(element) || (tm.test(value));
}, "格式不对");

//年龄
jQuery.validator.addMethod("age", function(value, element) {
var age = /^(?:[1-9][0-9]?|1[01][0-9]|120)$/;
return this.optional(element) || (age.test(value));
}, "不能超过120岁");
///// 20-60 /^([2-5]\d)|60$/

//传真
jQuery.validator.addMethod("fax",function(value,element){
var fax = /^(\d{3,4})?[-]?\d{7,8}$/;
return this.optional(element) || (fax.test(value));
},"传真格式如:0371-68787027");

//验证当前值和目标val的值相等 相等返回为 false
jQuery.validator.addMethod("equalTo2",function(value, element){
var returnVal = true;
var id = $(element).attr("data-rule-equalto2");
var targetVal = $(id).val();
if(value === targetVal){
returnVal = false;
}
return returnVal;
},"不能和原始密码相同");

//大于指定数
jQuery.validator.addMethod("gt",function(value, element){
var returnVal = false;
var gt = $(element).data("gt");
if(value > gt && value != ""){
returnVal = true;
}
return returnVal;
},"不能小于0 或空");

//汉字
jQuery.validator.addMethod("chinese", function (value, element) {
var chinese = /^[\u4E00-\u9FFF]+$/;
return this.optional(element) || (chinese.test(value));
}, "格式不对");

//指定数字的整数倍
jQuery.validator.addMethod("times", function (value, element) {
var returnVal = true;
var base=$(element).attr('data-rule-times');
if(value%base!=0){
returnVal=false;
}
return returnVal;
}, "必须是发布赏金的整数倍");

//身份证
jQuery.validator.addMethod("idCard", function (value, element) {
var isIDCard1=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;//(15位)
var isIDCard2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/;//(18位)

return this.optional(element) || (isIDCard1.test(value)) || (isIDCard2.test(value));
}, "格式不对");

</script>

 

页面中input引用:required data-msg-required="用户名不能为空"

 

jquery validate的官方演示和文档地址:

  • 官方网站:http://jqueryvalidation.org/
  • 官方演示:http://jqueryvalidation.org/files/demo/
  • 官方文档:http://jqueryvalidation.org/documentation/
标签: jquery
最后更新:2025年9月13日

cywcd

我始终相信,技术不仅是解决问题的工具,更是推动思维进化和创造价值的方式。从研发到架构,追求极致效能;在随笔中沉淀思考,于 AI 中对话未来。

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

cywcd

我始终相信,技术不仅是解决问题的工具,更是推动思维进化和创造价值的方式。从研发到架构,追求极致效能;在随笔中沉淀思考,于 AI 中对话未来。

最新 热点 随机
最新 热点 随机
AI 工作流神器 n8n:把自动化与智能真正交到技术团队手里 是时候给 lodash 放个假了:4 个更轻更快的现代替代方案 vue3-touch-events:专为 Vue 3 设计的强大手势事件库 字节跨平台框架 Lynx 开源:为 Web 开发者带来原生级跨端体验的全新选择 常见部署平台介绍:从静态站点到现代前端云的一站式指南 Rsbuild:由 Rspack 驱动的新一代高性能 Web 构建工具
markdown-exit:现代化的 Markdown 解析工具Lerna + Monorepo:前端多仓库管理的最佳实践CrewAI:基于角色协作的 AI Agent 团队框架浅析基于 docx-preview 的 Word 预览组件实现方案分享Monaco Editor真香,从对比到实战封装,一篇讲透WebSocket 调试神器:WebSocket DevTools 使用技巧全解析
字节跨平台框架 Lynx 开源:为 Web 开发者带来原生级跨端体验的全新选择 js页面滚动到一定位置时触发事件:隐藏、固定显示相互切换 npm 私服包自动化发布脚本实现与最佳实践 强大的jquery表单验证插件jquery validate HTML5中input的placeholder颜色设置及兼容性解决方案 JS获取浏览器窗口大小、获取屏幕、浏览器、网页高度宽度方法
最近评论
渔夫 发布于 1 个月前(11月05日) 学到了,感谢博主分享
沙拉小王子 发布于 8 年前(11月30日) 适合vue入门者学习,赞一个
沙拉小王子 发布于 8 年前(11月30日) 适合vue入门者学习,赞一个
cywcd 发布于 9 年前(04月27日) 请参考一下这篇文章http://www.jianshu.com/p/fa4460e75cd8
cywcd 发布于 9 年前(04月27日) 请参考一下这篇文章http://www.jianshu.com/p/fa4460e75cd8

COPYRIGHT © 2025 蓝戒博客_智构苍穹-专注于大前端领域技术生态. ALL RIGHTS RESERVED.

京ICP备12026697号-2