Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.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

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
为什么InputOnChangeJavaScript在我的代码中不起作用_Javascript_Jquery - Fatal编程技术网

为什么InputOnChangeJavaScript在我的代码中不起作用

为什么InputOnChangeJavaScript在我的代码中不起作用,javascript,jquery,Javascript,Jquery,我有一个问题,为什么JS中的InputOnChange在我的代码中不起作用。如果我选择第一个日期,它不会调用function onchange=“myFunction2(this.value)”,但在第二个表单中会调用。只有当我一直按enter键时,第一个功能才起作用。同时检查console.log,您将看到第一个函数不起作用 html 进站 堕落 价格 这里是调用myFunction2的另一种方法 $('#date1').datepicker({ minDate: 0, chang

我有一个问题,为什么JS中的InputOnChange在我的代码中不起作用。如果我选择第一个日期,它不会调用function onchange=“myFunction2(this.value)”,但在第二个表单中会调用。只有当我一直按enter键时,第一个功能才起作用。同时检查console.log,您将看到第一个函数不起作用

html


进站
堕落
价格

这里是调用myFunction2的另一种方法

$('#date1').datepicker({
  minDate: 0,
  changeMonth: true, 
  changeYear: true,
beforeShowDay: function(date){
    var string = jQuery.datepicker.formatDate('dd.mm.yy', date);
    return [ array.indexOf(string) == -1 ]  
},
onSelect: function(dateStr) {
                
       var newDate = $(this).datepicker('getDate');
       if (newDate) { 
               newDate.setDate(newDate.getDate() + 1);
       }
       $('#date2').datepicker('setDate', newDate).datepicker('option', 'minDate', newDate);
 
       myFunction2(this.value)

            }

});

已经有一个
onSelect:function(dateStr)
处理
#date1
更改事件。因此,将函数逻辑移到这里

$('#date1').datepicker({
    minDate: 0,
    changeMonth: true,
    changeYear: true,
    beforeShowDay: function(date) {
        var string = jQuery.datepicker.formatDate('dd.mm.yy', date);
        return [array.indexOf(string) == -1]
    },
    onSelect: function(dateStr) {
        zacetek = dateStr;
        zacetek = zacetek.split(".").reverse().join("/");
        console.log(zacetek);
        if (konec != undefined) {
            var razlika = ((new Date(konec) - new Date(zacetek)) / 86400000);
            document.getElementById("price").value = razlika;
        }
        var newDate = $(this).datepicker('getDate');
        if (newDate) {
            newDate.setDate(newDate.getDate() + 1);
        }
        $('#date2').datepicker('setDate', newDate).datepicker('option', 'minDate', newDate);
    }
});

此代码的缩进是。。。不太好。请提交一个最小的例子。这太多了。检查JSFIDLE,您将看到表单中的第一个函数工作不正常,但idk解释了原因。如果我举一个简单的例子,代码可以运行,但我不知道代码中的问题在哪里。请阅读“分而治之”中的建议。如果您不确定问题的根源是什么,请开始一次删除一点代码,直到问题消失,然后再添加最后一部分。”-这有助于您自己发现问题。如果我取出JQuery UI日期选择器代码,代码将正常工作,但如果我在日期选择器中更改任何内容,日历将不会弹出
$('#date1').datepicker({
  minDate: 0,
  changeMonth: true, 
  changeYear: true,
beforeShowDay: function(date){
    var string = jQuery.datepicker.formatDate('dd.mm.yy', date);
    return [ array.indexOf(string) == -1 ]  
},
onSelect: function(dateStr) {
                
       var newDate = $(this).datepicker('getDate');
       if (newDate) { 
               newDate.setDate(newDate.getDate() + 1);
       }
       $('#date2').datepicker('setDate', newDate).datepicker('option', 'minDate', newDate);
 
       myFunction2(this.value)

            }

});
$('#date1').datepicker({
    minDate: 0,
    changeMonth: true,
    changeYear: true,
    beforeShowDay: function(date) {
        var string = jQuery.datepicker.formatDate('dd.mm.yy', date);
        return [array.indexOf(string) == -1]
    },
    onSelect: function(dateStr) {
        zacetek = dateStr;
        zacetek = zacetek.split(".").reverse().join("/");
        console.log(zacetek);
        if (konec != undefined) {
            var razlika = ((new Date(konec) - new Date(zacetek)) / 86400000);
            document.getElementById("price").value = razlika;
        }
        var newDate = $(this).datepicker('getDate');
        if (newDate) {
            newDate.setDate(newDate.getDate() + 1);
        }
        $('#date2').datepicker('setDate', newDate).datepicker('option', 'minDate', newDate);
    }
});