输入,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解决方案仅触发。