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

标签 javascript jquery events

即使按下按钮并通过以下方式更改值,我也想在范围 slider 上捕获事件:

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

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

但是“输入”事件不会通过按下按钮触发。而且“改变”也不起作用。

HTML:

<input type="range">
<button>Change</button>
<div id="output"></div>

Javascript:

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

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

谁有解决方案?谢谢:)

最佳答案

首先,将 on 处理程序更改为使用 change like

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

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

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

fiddle

关于javascript - 输入,手动设置值时不会触发 onchange 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30291801/

相关文章:

javascript - fullCalendar 上的多个 nowIndicators

javascript - 如何使用 NodeJs 删除非标签 Html 元素?

php - 选择onchange更新php id然后查询mysql

c# - 事件冒泡 - 子控件的鼠标悬停事件

silverlight - 如何在 MVVM Light 中关闭 TabItem

javascript - 如何清除表单字段一次而不是每次触发焦点事件时

javascript - HTML 文本框上的 Keydown 事件问题

asp.net - 使用 LiveValidation 仅在单击一个按钮时才会触发验证?

java - HashMap 到 JSONArray 并处理 jquery 中的响应

javascript - 按F5(刷新)后如何运行函数?