INPUT要素は、ポップアップウィンドウからのJavaScriptによって変更されたとき「のonChange」イベントを発生させます

StackOverflow https://stackoverflow.com/questions/855264

質問

私は(window.openで開かれた)フォーム要素とポップアップウィンドウでWebページを持っています。

両方のjQueryを用意してます。

ポップアップウィンドウがオープナーウィンドウ内のフォーム要素を変更することができますJavaScriptを持っています。それは実行して完璧に動作...

$(opener.document.formelement).val(vals[0]);

しかしonChangeイベントが発生しませんことを行うことによって。それは、しかし、いくつかの他のページ要素によって必要とされるであろう。だから私は、

で自分自身をonChangeイベントを発射しようとしました
$(opener.document.formelement).change();

しかし、それは何もしません。

任意のヒント?私は間違いなくonChangeイベントは、他のページ要素のアーキテクチャに起因する解雇することを持っている必要があります。

この質問はhref="https://stackoverflow.com/questions/735462/call-javascript-onchange-event-by-programatically-changing-textbox-value">はプログラム的によってイベントのonchange Javascriptを呼び出しを変更しますが、その質問から提案の解決策は、私のために働くしていないようです。たぶんそれが原因ポップアップのです。

役に立ちましたか?

解決

あなたを傷つけている

おそらく、そのクロスウィンドウ...あなたが代わりに呼び出すオープナーの内側に機能を作ってみましょう。役立つかもしれない?

オープナーでます:

window.changeMyElement = function(value) {
  $(formelement).val(value).change();
}

ポップアップから:

opener.changeMyElement(value);

他のヒント

この行は、動作するようになっている。

$(opener.document.formelement).change();
このラインを

jQueryのドキュメントは、各一致要素の変更イベントをトリガーします。

それはあなたのために働いていない場合は、どこかにあなたのコードに問題があります。あなたが手でフォーム要素に変更することでのonchangeイベントをトリガすることはできますか?

また、行うことができます:

window.opener.document.getElementById('controlname').fireEvent('onchange');

またはあなたのコンテキストでます:

$(opener.document.formelement).fireEvent('onchange');
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top