Höher „onChange“ -Ereignis, wenn Eingabeelement von JavaScript aus Popup-Fenster geändert

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

Frage

Ich habe eine Webseite mit einem Formular-Elemente und einem Popup-Fenster (geöffnet von window.open).

Beide haben jQuery zur Verfügung.

Die Popup-Fenster verfügen über ein Javascript, das das Formularelement im Opener Fenster ändern kann. Das funktioniert perfekt, indem Sie ...

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

Allerdings, indem Sie, dass das onChange Ereignis wird nicht ausgelöst. Das würde durch einige andere Seitenelemente erforderlich sein, though. Also versuchte ich mich das onChange Ereignis ausgelöst mit

$(opener.document.formelement).change();

Aber das macht nichts.

Für Hinweise? Ich muss auf jeden Fall haben, dass onChange Ereignis aufgrund der Architektur der anderen Seitenelementen gebrannt.

Diese Frage ist ähnlich wie Rufen Ändern Textbox Wert , aber die vorgeschlagenen Lösungen aus dieser Frage scheinen nicht für mich zu arbeiten. das ist wegen des Popup Vielleicht.

War es hilfreich?

Lösung

Vielleicht ist es das Quer Fenster, das Sie verletzt ... Versuchen Sie eine Funktion innerhalb der Opener zu machen, die Sie stattdessen nennen. Könnte helfen?

Im Opener:

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

Von: Pop-up

opener.changeMyElement(value);

Andere Tipps

Diese Linie soll arbeiten:

$(opener.document.formelement).change();

Nach dem jQuery Dokumentation diese Linie des Änderungsereignis jeden verglichene Elements ausgelöst wird.

Wenn es nicht für Sie arbeitet, dann gibt es ein Problem in Ihrem Code irgendwo. Können Sie das onchange Ereignis ausgelöst wird, um mit der Hand in das Formularelement zu ändern?

Sie können auch tun:

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

oder im Kontext:

$(opener.document.formelement).fireEvent('onchange');
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top