为什么浏览器不会触发更改事件

时间:2013-07-24 14:46:48

标签: javascript jquery

我有

<input type="text" id="pies" value="" />

$( document ).ready(function() {
    $('#pies').on('change', function() { alert('cham'); });
    $('#pies').focus();
    $('#pies').val('kooooo');
    $('#pies').blur();
});

为什么浏览器不会触发更改事件?如何让浏览器触发更改事件。我不想手动触发“更改”,因为如果我将触发更改,在某些情况下触发器更改将被触发两次。这只是一个例子。

3 个答案:

答案 0 :(得分:1)

使用以下方式调用更改:

$('#pies').change();

答案 1 :(得分:1)

您必须手动执行

$('#pies').change();

As docs says

  

更改事件在其值更改时发送到元素。此事件仅限于元素,框和元素。对于选择框,复选框和单选按钮,当用户使用鼠标进行选择时会立即触发事件,但对于其他元素类型,事件将延迟,直到元素失去焦点。

在自动完成的情况下,尝试执行$("#pies").trigger("autocompleteselect");

答案 2 :(得分:0)

更好地使用keypress代替change