.change()不会触发输入

时间:2017-01-03 11:43:30

标签: jquery

如何在jQuery中以编程方式触发.on('input').change().trigger('change')似乎不太有用。

这是一个演示: https://jsfiddle.net/4o3v2c6s/

3 个答案:

答案 0 :(得分:1)

您可以尝试更新小提琴jsfiddle.net/bharatsing/4o3v2c6s/2/

setTimeout(function() {
  $('input[type="text"]').each(function() {
      $("#example").val("test").change();
      $("#example").val("test").trigger('input');
  });
}, 1000);

答案 1 :(得分:1)

只需给函数命名并随时调用它:

function doAThing() {
   alert("triggered!");
}

// Auto:
$(".val-trigger").change(doAThing);

// Manual:
doAThing();

答案 2 :(得分:0)

使用trigger('input')代替change()简写。

$(".val-trigger").on('input', function() {
  console.log("this is triggered on input! :)");
});

$(".val-trigger").change(function() {
  console.log("triggered!");
});

setTimeout(function() {
  $('input[type="text"]').each(function() {
      $("#example").val("test").trigger('input'); // < change here
  });
}, 1000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="val-trigger">
  <input type="text" id="example" />
</div>

Updated fiddle