Formularfelder werden nach AJAX-Reload nicht mehr übertragen

  • Hallo,


    habe das Problem zwar schon in diversen Foren an ein paar Stellen gefunden, aber bisher keine klare Antwort dazu:

    Sobald im Firefox eine in ein <div>...</div> eingebettete select-Liste (<select>...</select>) nach einem AJAX-Request über .innerHTML=... ausgetauscht wird, wird der Inhalt dieser Liste beim Abschicken des Formulars nicht mehr mitübertragen. Im IE dagegen funktioniert das problemlos.

    Ist das Problem dieser Nichtübertragung bekannt?

    (Ggf. lässt sich natürlich Code liefern.)


    Gruß M-F

  • (Aus irgendeinem Grund wird Code, den ich hier im Forum darstellen möchte, immer reduziert, da fliegen z.B. die Attribute aus XML-Tags raus usw., hat so keinen Sinn, Code darzustellen...)

    Einmal editiert, zuletzt von M-F (11. August 2008 um 22:49)

  • Code
    <select name="urlaubsland" size="1" onclick="return daten_ohne_reload_laden('bundesland', this.value );" >
    
    
    ...
    
    
    </select>
    Code
    <div id="id_region">
    		<select name="region" size="1" disabled="disabled" onclick="return daten_ohne_reload_laden('ort', this.value);">
    		<option>- Alle -</option>
    				</select>
    	</div>

    (Die einzelnen Skripte wie bundesland.php liefern jeweils eine komplett neue Auswahlliste, die in die jeweils umschließende div-Box eingebaut wird.)

  • Das Problem ist, dass innerHTML nicht standardisiert ist, sondern Gefrickel von Microsoft. Einzige saubere Lösung ist leider, auf innerHTML ganz zu verzichten und die standardisierten Methoden zu verwenden. Lies dir dazu mal diese Seite durch.

    Ich habe allerdings mal eine Seite mit jQuery gebastelt, welches ebenfalls innerHTML verwendet, und damit klappte zumindest das Hinzufügen von textareas samt Datenübertragung problemlos - keine Ahnung, ob das auf selects auch zutrifft.

  • Hab es am Ende auch so gelöst, dass die select-Liste erstmal dynamisch gelöscht wird (Löschen der einzelnen Options) und anschließend wieder aufgebaut wird. Schon etwas aufwändiger, dafür gehts dann auch in allen Browsern, da macht man so einen Kompromiss doch gern. :wink: