当我尝试将自定义验证方法添加到jQuery.validator中时,遇到了一个问题:
$.validator.addMethod("fromDate", function (value, element) {
var fromDateTime = moment(value, 'm/dd/yyyy HH:mm');
var toDateTime = moment($("#endDate").val(), 'm/dd/yyyy HH:mm');
if (fromDateTime.isValid() && toDateTime.isValid()) {
return toDateTime.diff(fromDateTime) > 0;
}
return false;
}, "Start datetime should be less than end datetime");
$('#queryingDateForm').on('submit', function (e) {
e.preventDefault();
$('#queryingDateForm').validate({
rules: {
start: {
required: true,
fromDate: true
}
},
submitHandler: function (form) {
load();
}
});
});
这行代码只在第一次运行时正确工作,因此验证只能运行一次。
return toDateTime.diff(fromDateTime) > 0;
第二次及以后,它会返回第一次返回的值。
HTML:
<form id="queryingDateForm">
<div class="input-group input-daterange">
<input class="form-control dateTimePicker" id="startDate" type="datetime" placeholder="Date Start" name="start" required />
<span class="input-group-addon">@QueryingResources.To</span>
<input class="form-control dateTimePicker" id="endDate" type="datetime" placeholder="Date End" name="end" required />
<div class="input-group-btn">
<button type="submit" class="btn btn-success searchQuery" id="searchDateBtn">@QueryingResources.Search</button>
</div>
</div>
</form>
这就是如何初始化Bootstrap日期时间选择器:
$(".dateTimePicker").datetimepicker({
autoclose: true,
format: 'm/dd/yyyy hh:ii'
});
提前感谢您的帮助。