输入,onchange事件在手动设置值时不会触发

我想在范围滑块上捕捉事件,即使我按下按钮并更改值:

$("input").val(1); 

http://jsfiddle.net/BaEar/188/

但事件“输入”不会按下按钮。 而“改变”也无效。

HTML:

   

使用Javascript:

 $("input").on("input", function() { //Does not fire on button click :( $("#output").text($(this).val()); }); $("button").click(function() { $("input").val(1); }); 

有解决方案的人吗? 谢谢 :)

首先,更改on处理程序以使用change

 $("input").on("change", function() { $("#output").text($(this).val()); }); 

其次,在点击处理程序中手动触发它

 $("button").click(function() { $("input").val(1); $("input").trigger("change"); }); 

小提琴

我认为$("input").val(1)应该改为$("input").val(1).trigger('input'); 。 您正在侦听input事件,因此在更改应触发事件的值之后。

jsfiddle – > http://jsfiddle.net/BaEar/191/

试试这个:

 $("input").on("input change", function() { $("#output").text($(this).val()); }); $("button").click(function() { $("input").val(1); $("input").change(); }); 

http://jsfiddle.net/BaEar/192/

因此,范围滑块通常通过更改值进行更新。 如果设置了值,AmmarCSE解决方案仅触发。