0

私が達成しようとしているのは、入力フィールドが変更されたときにコードを実行することです。

いくつかのコンテキスト...フォームのページは、iframeを使用してライトボックス(カラーボックス)内にロードされます。

2 つの問題が 1 つで発生しています。

  1. フォームが読み込まれると、change イベントが発生します。フィールドが変更されたときにのみ起動する必要があります。フォーカスやクリックなどの他のイベントを使用すると、同じことが起こります。また、go、live、bind を使用した場合にも発生します。
  2. 変更イベント (またはフォーカス、クリックなど) は、イベントが実際に発生したときに発生しません。

両方の問題は、ドキュメントの準備完了イベントと読み込みイベントで発生します。

トラブルシューティングの目的で、フォーム フィールドに値を入力する行を挿入しました。それは完璧に機能しました。

コード例は次のとおりです。

$(document).ready(function(){
  $("#inputfield").change(alert("field changed"));
}

原則としてこれは機能するはずなので、ページに影響を与える何かが他にあると想定していますが、見る場所が不足しています。イベント委任は解決策ですか? ここでどのように適用されるかわかりません。

4

1 に答える 1

0

あなたのコードでは、関数が返すchangeもので関数を呼び出します。alertしたがってalert、それは関数を呼び出し、戻りundefined、呼び出しますchange(undefined)。この方法では、イベントをまったくバインドしません。パラメータとして関数を設定する必要があります。

$(document).ready(function(){
  $("#inputfield").change(function () { 
    alert("field changed"); 
  });
}
于 2012-08-02T09:20:53.150 に答える