0

非表示のフォームフィールドがあり、ボタンを押すと非表示のフィールドの値が変更されます。ここで、変更が発生するのをリッスンするオブザーバーを非表示フィールドに追加しました。ただし、何らかの理由で、非表示の要素の値が変更されても、イベントリスナーが起動することはありません。PrototypeとFirefox3.6を使用しています。

コードはおおよそ次のようになります。

button.observe('click', function(event) {
  hiddenField.setValue(someValue);
});

hiddenField.observe('change', function(event) {
  alert('It works!');
});

後者のオブザーバーが実行されない理由を誰かが知っていますか?

ありがとう!

4

2 に答える 2

1

event.simulate.jsが必要です

イベントを起動します。

button.observe('click', function(event) {
  hiddenField.setValue(someValue);
  hiddenField.simulate('change');
});

そしてそれを観察します:

hiddenField.observe('change', function(event) {
  alert('It works!');
});
于 2010-05-16T01:14:47.347 に答える
0

input隠されている要素がそのイベントに反応するとは思わない。

プロトタイプはわかりませんが、トリガーされるイベントは完全にブラウザー次第だと思います。

これは、 JSbinでのjQueryの例です。テキストを自分で変更するとイベントが発生しますが、スクリプトを介して値を変更するコードの次の部分では発生しないことに注意してください。

于 2010-05-16T01:12:23.917 に答える