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 });