我目前正在使用jQuery验证插件来验证名为“开始日期”和“结束日期”的表单字段。我有自己的jQuery验证方法,它将验证并确保结束日期将大于开始日期。但是,奇怪的是是如果我的开始日期是:2017年6月1日,而我的结束日期是:2018年5月1日 ,这将提示我一个错误,提示“结束日期应大于开始日期”。 但是,不应出现此错误,因为通过查看这些值,显然结束日期大于开始日期。那怎么了?
<form id="dataForm" role="form" class="form-horizontal">
<div class="form-group col-md-12">
<label class="control-label col-md-4" for="startDateInput">Start Date</label>
<div class="col-md-7">
<div class="input-group date" style="max-width: 280px" data-provide="datepicker">
<input type="text" class="form-control" id="startDateInput" name="startDateInput">
<div class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</div>
</div>
</div>
</div>
<div class="form-group col-md-12">
<label class="control-label col-md-4" for="endDateInput">End Date</label>
<div class="col-md-7">
<div class="input-group date" style="max-width: 280px" data-provide="datepicker">
<input type="text" class="form-control" id="endDateInput" name="endDateInput">
<div class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</div>
</div>
</div>
</div>
<div class="form-group col-md-12">
<label class="control-label col-md-1"></label>
<div class="col-md-10">
<div class="pull-right">
<input type="button" class="btn btn-primary" value="Save" id="saveButton" />
</div>
</div>
</div>
<script>
$('.date').datepicker({
format: 'dd/mm/yyyy',
autoclose: true,
todayHighlight: true
});
$.validator.addMethod("endDate", function (value, element, params) {
var startDate = $('#startDateInput').val();
var endDate = value;
return startDate < endDate || value == "";
}, '*End date must be after start date');
$('#dataForm').validate({
rules: {
startDateInput: {
required: true
},
endDateInput: {
endDate: true
}
}
});
$('#saveButton').on('click', function () {
if ($('#dataForm').valid() == true)
alert('hi');
});
演示:https://jsfiddle.net/Issaki1/gud7xjy0/31/ 嗨,请演示以下值,开始日期:01/06/2017 结束日期:01/05/2018