2016-05-16 72 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' 
     } 
    } 
});