![]() |
[JS] Probleme beim dyn. Erweitern von Forms mit AJAX
Hallo!
Ich habe folgendes Problem: Ich habe ein einfaches HTML-Formular:
Code:
Also zwei Felder, und das war es dann auch schon. Der User kann jetzt mit einem Button, noch so ein 2-Felder-Set hinzufügen.
<form action="admin_bills.php?mode=dopay" method="post" id="billform">
<div id="fields"> <fieldset id="bill_1"> <legend>Rechnung 1</legend> <label>Vertragsnummer: <input type="text" name="contract_ids[1]" onchange="contractchanged(this,1)" tabindex="1" /></label> <label>Bezahlter Betrag: <input type="text" name="paid_amounts[1]" tabindex="2" /></label><span id="out_1"></span> </fieldset> </div> </form> Per AJAX wird dann der HTML-Code angefordert und einfach per document.getElementById('fields').innerHTML += XMLHTTP.responseText; angefügt. Soweit so gut; es funktioniert auch alles wunderbar. Das Problem ist nur: Wenn man im FF in bereits vorhandene Felder etwas geschrieben hat, werden diese wieder geleert, sobald man eine neue Zeile hinzufügen will. :wall: Im IE funktioniert das allerdings. Wie kann ich das lösen? Grüße Faux |
Re: [JS] Probleme beim dyn. Erweitern von Forms mit AJAX
Ganz einfach: Vor dem absenden den inhalt in eine variable speichern, danach per ajax den request schicken und dann die felder mit den in der variable gespeicherten daten füllen :stupid: Is villeicht nicht grad das beste, aber geht...
|
Re: [JS] Probleme beim dyn. Erweitern von Forms mit AJAX
Naja, dass es so geht, ist klar, aber das kann ja auch nicht die "Lösung" sein, das ist imho eher ein Work-Around. Im IE funktioniert es ja auch ohne Probleme.
Grüße Faux Arg: Im FF 2.0 funktioniert Alt+S zum Absenden nicht mehr... :wall: |
Re: [JS] Probleme beim dyn. Erweitern von Forms mit AJAX
Zumindest dazu kann ich was sagen:
Zitat:
![]() |
Re: [JS] Probleme beim dyn. Erweitern von Forms mit AJAX
Zitat:
Code:
und beim Update machst du dann
... Hier dein eigentliches HTML ...
<div id="append_here"></div>
Code:
Dadurch ersetzt du nur ein leeres Element durch den neuen Inhalt, die alten Formularfelder sollten bestehen bleiben.
document.getElementById('append_here').outerHTML = XMLHTTP.responseText + '<div id="append_here"></div>';
|
Re: [JS] Probleme beim dyn. Erweitern von Forms mit AJAX
Hallo!
Da outerHTML meines Wissens nur von IE erkannt wird, habe ich es genau so wie du gelöst, nur mit innerHTML. :D Danke sehr! |
Re: [JS] Probleme beim dyn. Erweitern von Forms mit AJAX
Zitat:
|
Re: [JS] Probleme beim dyn. Erweitern von Forms mit AJAX
Zitat:
Code:
und fuegst das ein:
<div id="append_here"></div>
Code:
wenn du outerHTML setzt, hast du am Ende genau das.
Foobar<div id="append_here"></div>
Wenn du innerHTML setzt, hast du am Ende:
Code:
;)
<div id="append_here">Foobar<div id="append_here"></div></div>
Greetz alcaeus |
Re: [JS] Probleme beim dyn. Erweitern von Forms mit AJAX
1. Das ist kein valides HTML mehr (ID darf nur einmal vorkommen)
2. Du kannst so nicht noch einmal was anhängen |
Re: [JS] Probleme beim dyn. Erweitern von Forms mit AJAX
Zitat:
Dass eine ID nur einmal vorkommen kann, weiss ich auch; und dass man nicht nochmal was anhaengen kann bezweifle ich momentan; iirc gibt getElementById() das erste gefundene Element mit einer bestimmten ID zurueck. Besides that, die Loesung mit outerHTML ist auch nicht grad besser, mich wuerde interessieren was Safari dazu sagt (der ist etwas zickig wenns um "inoffizielles" JS geht) Greetz alcaeus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz