当你以编程方式设置文本框值时,jquery`on change`无法识别

时间:2014-01-17 04:31:14

标签: javascript jquery

我打电话时要清除文本框:

$('#textBox').val(''); or $('#textBox').empty();

最初,当我手动退格并从文本框中删除文本时,on change函数将会触发。如果我在上面运行$('#textBox').val(''),则on change不会触发:

$(document).ready(function() {
    $('#textBox').on('change', function(){

为什么会这样?

3 个答案:

答案 0 :(得分:4)

使用触发器,如下所示:

$("#testBox").val("").trigger("change");

答案 1 :(得分:1)

以编程方式更改值时,只需使用trigger触发更改事件。

$("#myid").trigger("change");

答案 2 :(得分:1)

不是jQuery不会触发事件,而是浏览器。如果你在specs中查找,你会看到更改事件的定义:

  

变化

The change event occurs when a control loses the input focus and its value has been
modified since gaining focus. This event is valid for INPUT, SELECT, and
TEXTAREA. element.

    Bubbles: Yes
    Cancelable: No
    Context Info: None

如上所述,您可以通过trigger()手动触发事件来缓解您的问题。