输入,onchange事件在手动设置值时不触发 [英] input, onchange event dont fire when value is set manually

查看:381
本文介绍了输入,onchange事件在手动设置值时不触发的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想抓住范围滑块上的事件,即使我按一个按钮,并通过以下方式更改值:

  $ ( 输入)VAL(1)。 

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



但事件输入不按按钮按下。而且变更也不起作用。



HTML:

  < input type =range> 
< button>更改< / button>
< div id =output>< / div>

Javascript:

 code $ $(input)。on(input,function(){//不触发按钮点击:( 
$(#output)。 。($)$;

$(button)点击(function(){
$(input)。
});

任何有解决方案的人都谢谢:)

解决方案

首先,更改处理程序中的以使用更改

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

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



($)$($$$$$$$$$$ ).trigger(change);
});

小提琴


I want to catch the event on the range slider even if i press a button and change the Value by:

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

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

But the event "input" dont fire by button press. And "change" is also not working.

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); 
});

Anyone with a solution ? Thanks :)

解决方案

First, change the on handler to use change like

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

Second, manually trigger it in the click handler like

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

fiddle

这篇关于输入,onchange事件在手动设置值时不触发的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆