2012-05-03 44 views
0

我需要驗證開始時間和結束時間。我似乎得到了驗證部分工作,但是當兩者都沒有價值時,我不需要驗證,所以不需要。jquery開始時間/結束時間驗證

$.validator.addMethod("endTimeRange", function() { 
     var n=new Date(); 
     var st = Date.parse(n.getMonth()+1+'/'+n.getDate()+'/'+n.getFullYear() + ' ' + $("#startTime").val()); 
     var nd = Date.parse(n.getMonth()+1+'/'+n.getDate()+'/'+n.getFullYear() + ' ' + $("#endTime").val()); 
     return nd > st; 
    }, "Please specify a correct end time, the end time must be before the second."); 

    $.validator.addMethod("startTimeRange", function() { 
     var n=new Date(); 
     var st = Date.parse(n.getMonth()+1+'/'+n.getDate()+'/'+n.getFullYear() + ' ' + $("#startTime").val()); 
     var nd = Date.parse(n.getMonth()+1+'/'+n.getDate()+'/'+n.getFullYear() + ' ' + $("#endTime").val()); 
     return st < nd; 
    }, "Please specify a correct start time, the start time must be after the end time."); 


startTime: { 
      required: function(element) { 
      return $("#endTime").val().length > 0; 

      }, 
      startTimeRange:true 
     }, 

     endTime: { 
      required: function(element) { 
      return $("#startTime").val().length > 0; 
      }, 
      endTimeRange:true 

     }, 

回答

0

首先,你的兩個驗證方法做同樣的事情。爲了實現成功的驗證,如果字段的一個或兩個是空的,只需將它們添加到您的回報:

// default is true 
var isValid = true; 

// if either value is empty, dont validate 
if ($("#endTime").val() !== '' && $("#startTime").val() !== '') { 
    // start time must be before end time 
    isValid = startTime <= endTime; 
} 

return isValid; 
+0

我如何將納入我已經與你的建議得到了 –

+0

你接近「你可以做我的爲我工作?「點,我建議你花更多的時間試圖讓它工作。 – jbabey

+0

我已經改變了這個功能,它驗證但有點不正確。因此,當我選擇結束時間它仍然顯示該錯誤消息 –

相關問題