Javascript 表单上的日期检查无效
我有一张有日期选择者的表格。在提交时,我调用Javascript 表单上的日期检查无效,javascript,jquery,forms,Javascript,Jquery,Forms,我有一张有日期选择者的表格。在提交时,我调用$('#form')。在('Submit')时,根据带有预定日期的夏普点列表检查选择器中选择的日期。我有一个方法可以用Ajax检索这些日期。我的问题是,当我在For循环中用IF语句检查表单的日期时,submit即使不应该也会被点击。我想在dateCheck到达预定日期时中断循环。但是我现在不知道把表单放在哪里。提交,这样它就不会被错误击中。我在表单中使用IF进行了trie。submit检查数组是否包含任何预定日期。但是没有运气。提前谢谢你的帮助 if
$('#form')。在('Submit')
时,根据带有预定日期的夏普点列表检查选择器中选择的日期。我有一个方法可以用Ajax检索这些日期。我的问题是,当我在For循环中用IF语句检查表单的日期时,submit
即使不应该也会被点击。我想在dateCheck到达预定日期时中断循环。但是我现在不知道把表单放在哪里。提交,这样它就不会被错误击中。我在表单中使用IF进行了trie。submit
检查数组是否包含任何预定日期。但是没有运气。提前谢谢你的帮助
if ($("#startDatePicker").datepicker("getDate") !== null) {
if (!$("#enddate").is(":hidden") &&
$("#endDatePicker").datepicker("getDate") === null) {
$("#infoModal h4").text("Hint");
$("#infoModal p").text("Please select a End date");
$("#infoModal").modal("show");
} else {
var bookedDates = [];
//ForLoop för som kollar alla datum mot valda datum
for (var i = 0; i < parsedDates.length; i++) {
if (dateCheck(start, end, parsedDates[i])) {
$("#infoModal h4").text("Validation error");
$("#infoModal p")
.text("You have entered a busy date or interval that overlaps an already booked date.");
$("#infoModal").modal("show");
bookedDates.push(parsedDates[i]);
break;
}
if (!$.isArray(bookedDates) || !bookedDates.length) {
form.submit();
}
} //parsedDates loop
} //endDatePicker != hidden && endDatePicker != null
} //StartDatePicker != null
if($(“#startDatePicker”).datepicker(“getDate”)!==null){
如果(!$(“#结束日期”)为(“:隐藏”)&&
$(“#endDatePicker”).datepicker(“getDate”)==null){
$(“#infoModal h4”).text(“提示”);
$(“#infoModal p”).text(“请选择结束日期”);
$(#infoModal”).modal(“show”);
}否则{
var bookedDates=[];
//ForLoop för som kollar alla datum mot valda datum
for(var i=0;i
我不是100%确定,但据我所知,您希望在bookedDates数组中包含某些值(日期)时提交表单。
当数组中没有日期时,下面的条件将导致TRUE,如
!$.isArray(bookedDates) -> false (As it's a array)
!bookedDates.length -> true (if no date is push in array then value is 0 and !0 -> True and form will submit.
if (!$.isArray(bookedDates)||!bookedDates.length) {
form.submit();
}
我建议您将下面的if条件置于for循环之外
if ($.isArray(bookedDates) && bookedDates.length) {
form.submit();
}
$.isArray(bookedDates): it should be a array
bookedDates.length : and Must have one date inside the array.
我们应该如何测试您的代码?读这个:非常好的问题。我只想在数组为空时提交。这意味着新的日期范围没有重叠的日期。