jQuery的textbox.val('xxxx')不会导致火灾的变化?

我的页面上有以下jQuery代码:

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

我正在使用一个修改它所链接到的文本框的值的plugic:

 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" /> 

当使用代码更改文本框的值时,更改不会触发。 如果我input文本框,更改将触发。 我错过了什么?

这是它的工作方式。 如果您需要更改值来触发“更改”事件,则可以通过以下方式明确执行此操作:

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

$('.change').change()会触发事件。 只是改变属性不会触发事件。

根据DOM级别2事件规范 :

当控件失去input焦点并且自从获得焦点以来其值已经被修改时发生改变事件。

这意味着更改事件旨在通过用户交互触发更改。 程序化更改不会导致此事件被触发。