如何在jquery addmethod中验证日期字段

时间:2017-05-22 05:35:15

标签: jquery

我需要使用addmethod中的jquery在文本框中验证输入的日期。日期不得超过当前日期1年的日期,并且格式为dd/mm/YYYY

jQuery.validator.addMethod("greaterThanToday", function(value, element) { 
var now=new Date(); 
if ( !/Invalid|NaN/.test(new Date(value)) ) { 
return new Date(value) > now; 
} 
return isNaN(value) || (parseFloat(value) > now); }, "* The date should not be greater than today.");

2 个答案:

答案 0 :(得分:0)

$( "#datepicker" ).datepicker( { minDate: -0, maxDate: new Date(2018, 5,22) });

如果您想使用静态日期,请使用new date(2018,5,22) 如果您想要动态日期,请使用+1 year

我认为这对你有用

答案 1 :(得分:0)

试用此代码

jQuery.validator.addMethod("greaterThanToday",function(value) {
        var isValid = value.match(/^\d{2}\/\d{2}\/\d{4}$/);
        if(isValid){
            var datetime = value;
            var date = new Date();
            var parts = datetime.split('/');
            var day = parseInt(parts[0]);
            var month = parseInt(parts[1])-1;
            var year = parseInt(parts[2]);
            var maxyear = date.getFullYear()+1;
            var maxDay = date.getDate();
            var maxMonth = date.getMonth();
            var enteredDate = new Date(year, month, day);
            var maxDate = new Date(maxyear, maxMonth, maxDay);
            if (enteredDate <= maxDate) {
              isValid = true;
            }
            else{
              isValid =  false;
            }
        }
        return isValid;
    }, "Not a valid date");

$("#date").validate({
    submitHandler: function(form) {
        return false; 
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.16.0/jquery.validate.js"></script>
<form id="date" action="#" method="">
    <div>
        <label for="datetime">dd/mm/yyyy<input type="text" name="datetime" id="checkDate" value="23/05/2017" class="required greaterThanToday"/></label>
        <input type="submit" name="submit" id="submit" value="Check" />
    </div>
</form>