$(document).ready(function() {
jQuery.validator.addMethod("realName", function(value, element) {
var tel = /^([\u4e00-\u9fa5]+|([a-zA-Z]+\s?)+)$/;
return this.optional(element) || (tel.test(value));
}, "请正确填写您的姓名");
jQuery.validator.addMethod("realWechatNum", function(value, element) {
var tel = /^(13[0-9]|14[0-9]|15[0-9]|18[0-9]|17[0-9])\d{8}$/;
var rex = /^[a-zA-Z][-_a-zA-Z0-9]{5,19}$/;
return this.optional(element) || (rex.test(value)) || (tel.test(value));
}, "微信号只能含有数字、字母、下划线、和减号,且长度在6-20位,开头为字母/手机号为11位数字");
jQuery.validator.addMethod("integer", function(value, element) {
var tel = /^[1-9]*[1-9][0-9]*$/;
return this.optional(element) || (tel.test(value));
}, "请输入正确的员工编号");
$("#inputForm").validate({
onfocusout: false,
rules: {
"staff.staffName": {realName: true},
"staff.staffWorkNo": {remote: "${ctx}/sys/user/checkStaffWorkNo?staffId=${sysUser.staffId}"},
"staff.staffNo": {integer:true,maxlength:8},
wechatNum: {
realWechatNum:true,
remote: {
type: "post",
url: "${ctx}/sys/user/checkWechatNum?userId=${sysUser.userId}",
data: {
wechatNum: function(){return $("#wechatNum").val();}
}
}
}
},
messages: {
"staff.staffWorkNo": {remote:"员工档案编码重复"},
wechatNum: {
realWechatNum: "微信号只能含有数字、字母、下划线、和减号,且长度在6-20位,开头为字母/手机号为11位数字",
remote: "微信号/手机号已存在"
},
"staff.staffNo": {
integer:"编号为非0开头正整数数字格式并且最多8位",
maxlength:"编号为非0开头正整数数字格式并且最多8位",
},
},
submitHandler: function(form){
$('#myModal').modal({backdrop: 'static', keyboard: false});
loading('正在提交,请稍等...');
form.submit();
},
errorContainer: "#messageBox",
errorPlacement: function(error, element) {
$("#messageBox").text("输入有误,请先更正。");
if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
error.appendTo(element.parent().parent());
} else {
error.insertAfter(element);
}
}
});
});

其中jQuery.validate的optional(element),用于表单控件的值不为空时才触发验证。
当element为空时this.optional(element)=true,用于在该控件为非必填项目时可以通过验证,及条件可以不填但是不能填错格式。

如果值为空时也要触发验证,移除optional(element)。

jquery-validae的更多相关文章

  1. Angular杂谈系列1-如何在Angular2中使用jQuery及其插件

    jQuery,让我们对dom的操作更加便捷.由于其易用性和可扩展性,jQuer也迅速风靡全球,各种插件也是目不暇接. 我相信很多人并不能直接远离jQuery去做前端,因为它太好用了,我们以前做的东西大 ...

  2. jQuery UI resizable使用注意事项、实时等比例拉伸及你不知道的技巧

    这篇文章总结的是我在使用resizable插件的过程中,遇到的问题及变通应用的奇思妙想. 一.resizable使用注意事项 以下是我在jsfiddle上写的测试demo:http://jsfiddl ...

  3. Jquery的点击事件,三句代码完成全选事件

    先来看一下Js和Jquery的点击事件 举两个简单的例子 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...

  4. jQuery实践-网页版2048小游戏

    ▓▓▓▓▓▓ 大致介绍 看了一个实现网页版2048小游戏的视频,觉得能做出自己以前喜欢玩的小游戏很有意思便自己动手试了试,真正的验证了这句话-不要以为你以为的就是你以为的,看视频时觉得看懂了,会写了, ...

  5. jquery和Js的区别和基础操作

    jqery的语法和js的语法一样,算是把js升级了一下,这两种语法可以一起使用,只不过是用jqery更加方便 一个页面想要使用jqery的话,先要引入一下jqery包,jqery包从网上下一个就可以, ...

  6. jQuery之ajax实现篇

    jQuery的ajax方法非常好用,这么好的东西,你想拥有一个属于自己的ajax么?接下来,我们来自己做一个简单的ajax吧. 实现功能 由于jq中的ajax方法是用了内置的deferred模块,是P ...

  7. 利用snowfall.jquery.js实现爱心满屏飞

    小颖在上一篇一步一步教你用CSS画爱心中已经分享一种画爱心的方法,这次再分享一种方法用css画爱心,并利用snowfall.jquery.js实现爱心满屏飞的效果. 第一步: 利用伪元素before和 ...

  8. jQuery的61种选择器

    The Write Less , Do More ! jQuery选择器 1. #id : 根据给定的ID匹配一个元素 <p id="myId">这是第一个p标签< ...

  9. jquery.uploadify文件上传组件

    1.jquery.uploadify简介 在ASP.NET中上传的控件有很多,比如.NET自带的FileUpload,以及SWFUpload,Uploadify等等,尤其后面两个控件的用户体验比较好, ...

  10. 浅谈 jQuery 核心架构设计

    jQuery对于大家而言并不陌生,因此关于它是什么以及它的作用,在这里我就不多言了,而本篇文章的目的是想通过对源码简单的分析来讨论 jQuery 的核心架构设计,以及jQuery 是如何利用javas ...

随机推荐

  1. springboot整合devtool无法热部署

    参见https://www.cnblogs.com/winner-0715/p/6666579.html.

  2. C++继承中关于子类构造函数的写法

    构造方法用来初始化类的对象,与父类的其它成员不同,它不能被子类继承(子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法).因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统需 ...

  3. 使用Pyquery+selenium抓取淘宝商品信息

    配置文件,配置好数据库名称,表名称,要搜索的产品类目,要爬取的页数 MONGO_URL = 'localhost' MONGO_DB = 'taobao' MONGO_TABLE = 'phone' ...

  4. vue 根据接口返回的状态码判断用户登录状态并跳转登录页,登录后回到上一个页面(http拦截器)

    背景:后台接口返回code==501表示用户是未登录状态,需要登录才可访问: 通过http拦截做路由跳转 第一步:src目录下新建http.js文件,内容如下: import Axios from ' ...

  5. easyui 回车搜索

    代码: js: // 搜索 $("#searchButton").click(function() { var ip = $("#searchIp").val( ...

  6. PHP请求ws出现的问题

    在SOAPUI中的请求如下: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/&qu ...

  7. 源发行版 1.8 需要目标发行版 1.8以及usage of api documented as @since 1.8+

    Maven项目每个Module都有单独的pom.xml,如果不在pom.xml中进行配置,则默认将Module的Language Level设置为5.所以要在pom.xml文件中添加插件进行配置. & ...

  8. stark组件开发之添加功能实现

    添加功能,还是使用, form 组件来完成!  并且 完成添加之后,需要保留原搜索条件. def memory_url(self): '''用于反向生成url, 并且携带,get请求的参数,跳转到下一 ...

  9. centos 7 安装pip

    1.首先检查centos 有没有安装python-pip 包, >>yum install python-pipnotice:NO package python-pip available ...

  10. JDBC - Mysql 8.0.13 连接测试

    因为换新的电脑设备,为其安装一些开发需要的应用及环境,下载了新版的Mysql8.0.13,在Eclipse中测试连接时遇到一些新的问题,遂记录. 1. Mysql 5.*  版本JDBC连接 a. 常 ...