質問

私は自分のページ上の場所に、次のjQueryコードを持っています:

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

私はそれを使ってリンクされたテキストボックスの値を変更plugicを使用しています:

target.val('xxxx');

(asp.netから)HTMLのテキストボックスである:

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

テキストボックスの値は、コードを使用して変更すると、変更が発射されていません。私は、テキストボックスに入力すると、変更が発生します。私は何をしないのですか?

役に立ちましたか?

解決

それはそれが動作する方法です。あなたは「変更」イベントをトリガする値の変更が必要な場合は、明示的でそうすることができます:

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

他のヒント

$('.change').change()はイベントを発生します。ただ、属性を変更すると、イベントを発生しません。

DOMレベル2イベントによると、仕様でます:

  コントロールが入力フォーカスを失って、その値がフォーカスを得て以来、変更されたときに、

変更イベントが発生します。

これは変更イベントは、ユーザとの対話によって変更に起動するように設計されていることを意味します。 Programmatical変更は、このイベントが解雇されることはありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top