1

次のようなjqueryイベントハンドラーにリンクされたテキストボックスがあります。

$('#SomeDiv').on({

   mouseenter: ....
   mouseleave: ....
   blur: ....
   keyup: function() { HandlerForKeyUp($(this)); } ,
   change: function() { HandlerForKeyUp($(this)); } 

}, '.MyTextBoxes');

基本的にHandlerForKeyUpは、テキストボックスの文字数のカウンターを表示する機能です。ユーザーが入力しているときは正常に機能します。

ただし、これを書くと:

$('#SomeTextBox').val(SomeValue);

HandlerForKeyUp 関数はトリガーされません。changeイベントがハンドラーにマップされていて.on、SomeTextBox がクラスMyTextBoxesであり、他のすべてのイベントに反応しているにもかかわらずです。基本的に、ユーザーがカウンターを入力すると機能しますが、実行時にテキストボックスの値を設定すると、カウンター関数はトリガーされません。

これをどのように変更できるかについてのアイデアはありますか?

ご提案いただきありがとうございます。

4

1 に答える 1

7

変更イベントを手動で発生させる必要があります。

$('#SomeTextBox').val(SomeValue).change();

于 2012-08-07T16:34:40.260 に答える