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:true 11 }, 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 });