2016-05-16 150 views
1

您好我有以下代碼以驗證日期範圍如何從自定義驗證方法驗證日期?

HTML:

<div class="form-group"> 
     <label for="txtLastName">Registration Date:</label> 
     <input type="date" class="form-control" id="txtRego" name="txtRego" /> 
    </div> 

JS:

  var f = $('#f1');//this is the form 

      $.validator.addMethod('dateRange', function (value, element) { 

       if ((value >= '1/31/2016' && value <= '3/31/2016')) { 
        return true; 
       } 
       else { 
        return false; 
       } 
      }, 'entered date is out of range'); 

f.validate({ 
       rules: { 

        txtRego: { 
         dateRange: true 
        } 
       }, 
       messages: { 

        txtRego: { 
         dateRange: 'not in range' 
        } 
       } 
      }); 

,但它不驗證的範圍內。爲什麼它不會驗證日期?

+0

您正在使用的字符串比較(大於或小於)。您需要將該值轉換爲日期對象,然後進行比較。 – DinoMyte

+0

使用[momentjs](http://momentjs.com)庫爲您執行此操作。 – t0mm13b

+0

@DinoMyte如果你可以作爲答案可以給點! –

回答

0

試試這個

var f = $('#f1');//this is the form 
var startdate = new Date('1/31/2016'); 
var enddate = new Date('3/31/2016'); 
$.validator.addMethod('dateRange', function(value, element) { 
    var value = new Date(value); 
    if ((value >= startdate && value <= enddate)) { 
     return true; 
    } else { 
     return false; 
    } 
}, 'entered date is out of range'); 

f.validate({ 
    rules : { 

     txtRego : { 
      dateRange : true 
     } 
    }, 
    messages : { 

     txtRego : { 
      dateRange : 'not in range' 
     } 
    } 
});