Javascript .change()元';t由于默认值而触发

Javascript .change()元';t由于默认值而触发,javascript,jquery,Javascript,Jquery,我有一种数字输入的形式,我给它分配默认值。但是,通过为输入指定默认值,现在当我输入并更改输入的实际值时,.change()事件将不会触发 我试过.val()和.keypress(),但运气不好 HTML: <form id="target"> <h4>% Coal generation:<input type="number"></h4> <h4>% Biomass generation:<input type="

我有一种数字输入的形式,我给它分配默认值。但是,通过为输入指定默认值,现在当我输入并更改输入的实际值时,
.change()
事件将不会触发

我试过
.val()
.keypress()
,但运气不好

HTML:

<form id="target">
    <h4>% Coal generation:<input type="number"></h4>
    <h4>% Biomass generation:<input type="number"></h4>
    <h4>% Geothermal generation:<input type="number"></h4>
    <input id="submitprofile" type="submit" class="submit" value="Calculate">
</form>   

您必须将更改处理程序分配给表单的输入,如下所示:

$( "#target :input" ).change(function() {
        console.log('form changed');//not happening!
        refreshdisplay();
    });
e、 g.此处:

如果您确实希望每次输入数字时调用
刷新显示
-功能,请将
替换为
。更改
。按键

我建议使用setTimeout或类似的方法为此添加延迟,因为直接向表单字段中添加例如“111”会触发三次,每输入一个数字就会触发一次。

尝试读取
输入
字段内部的更改,而不是
表单

 $( "#target").find("input").on("change", function() {
       console.log('form changed');
       //refreshdisplay();
   });

?对我有用。我想您已经检查了控制台是否有任何错误
 $( "#target").find("input").on("change", function() {
       console.log('form changed');
       //refreshdisplay();
   });