jq.validate 自定义验证两个日期
首先定义有一个表单,date1和date2是属于表单的元素,若date1大于date2,返回false:若date1<date2,返回true。使用jq.validate中的validator.addMethod()自定义验证。
具体方法如下:
1 jQuery.validator.addMethod("dateCheck", function() { 2 3 var date1= $("# date1").val(); 4 var startLogTimeDate = new Date(Date.parse(date1.replace(/-/g, "/"))).getTime(); 5 var date2= $("# date2").val(); 6 var endLogTimeDate = new Date(Date.parse(date2.replace(/-/g, "/"))).getTime(); 7 if(endLogTimeDate>startLogTimeDate){ 8 return false; 9 }else{10 return true;11 }12 }, "比较两个时间");
定义完方法之后,对于用户输入的值进行验证:
1 $("获取表单id ").validate({ 2 rules: { 3 date1: { 4 required: true, 5 dateISO:true 6 }, 7 date2: { 8 required: true, 9 dateISO:true,10 dateCheck:true11 },12 13 },14 messages: {15 date1: {16 required: '请输入日期',17 dateISO:'请输入正确格式的日期'18 },19 date2: {20 required: '请输入日期',21 dateISO:'请输入正确格式的日期',22 dateCheck:' date1日期应大于date2日期'23 },24 25 },26 submitHandler : function(form) {27 $(form).ajaxSubmit({28 success : function() {29 //前端校验完成提交数据库30 onSubmit($(form));31 }32 });33 },34 errorPlacement : function(error, element) {35 $('button[name="saveButton"]').button('reset');36 error.insertAfter(element.parent());37 }38 });