JQuery textbox.val('xxxx') не вызывает изменения огня?

У меня на моей странице есть следующий код jQuery:

var isChanged = false;
$(document).ready(function()
{
    $('.change').change(function() {
        isChanged = true;
    });
});

Я использую плагин, который изменяет значение текстового поля, которое оно связано с использованием:

target.val('xxxx');

текстовое поле в html (из asp.net):

<input name="ctl00$cphHolder1$rptFlex$ctl01$txtLeftRank"
  type="text"
  value="52°"
  id="ctl00_cphHolder1_rptFlex_ctl01_txtLeftRank"
  class="change atiselector" />

Когда значение текстового поля изменяется с помощью кода, это изменение не срабатывает. Если я ввешу текстовое поле, произойдет смена. Что мне не хватает?

Ответ 1

То, как это работает. Если вам нужно изменить значение, чтобы вызвать событие "change", вы можете явно сделать это:

$('input#whatever').val('hi').change();

Ответ 2

$('.change').change() загорится событие. Просто изменение атрибутов не запускает событие.

Ответ 3

В соответствии с Спецификация событий DOM уровня 2:

Событие изменения происходит, когда элемент управления теряет фокус ввода, и его значение было изменено с момента получения фокуса.

Это означает, что событие изменения предназначено для запуска изменений при взаимодействии с пользователем. Программные изменения не приводят к запуску этого события.