Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 表单上的日期检查无效_Javascript_Jquery_Forms - Fatal编程技术网

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.

我们应该如何测试您的代码?读这个:非常好的问题。我只想在数组为空时提交。这意味着新的日期范围没有重叠的日期。