2012-03-27 9 views
0

Ich habe ein Formular, dessen Elemente über Ajax in der folgenden HTML-Struktur geladen wurden.Benutzer nach der Eingabe von Daten über Formularelemente, die über Ajax geladen wurden, nicht mehr navigieren

<div id="form-wrapper"><form id="myform" action="#" method="post"> 

//form elements loaded via ajax. 

</form></div> 

ich den folgenden Code verwenden eine Warnmeldung angezeigt wird, wenn Benutzer von der Seite mit nicht gespeicherten Daten über sie weg navigiert. Das funktioniert nicht.

Es scheint mir, dass das Problem die Formularelemente betrifft, die über Ajax geladen werden. Wie kann ich das zur Arbeit bringen? Ich benutze jQuery 1.7, daher habe ich on() verwendet.

Grüße, John

Antwort

1

Sie benötigen #myform:input mit #form-wrapper in Ihrem .on Anruf zu tauschen. Das erste Element sollte der statische Container auf Ihrer Seite sein, der sich nach dem anfänglichen DOM-Laden nicht ändert.

Bei näherem Hinsehen, vielleicht meintest du #myform :input? Mit anderen Worten, eine Eingabe innerhalb von myform, nicht myform selbst. So versuchen Sie das:

jQuery('#form-wrapper').on('change', '#myform :input', function() { confirm_page_unload(true); }); 
+0

Swapping die Selektoren und das Hinzufügen des Speicherplatzes löste das Problem. Und außerdem wollte ich die Eingabe in das Formular eingeben. Ich schätze die Hilfe! – John

+0

Ich bin froh, dass ich helfen konnte! –

Verwandte Themen