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