Hallo,
folgender Code:
Swappt ein Eingabefeld von <input type="text" /> <-> <textarea> und zurück so oft man will.
FF: funktioniert
IE8: funktioniert
IE7: funktioniert nicht
Konkreter Fehler: der IE 7 kann einmal swappen (input -> textarea), ab dann nicht mehr, weil getElement(), also die Objektsuche fehlschlägt. Kann ich irgendwie den DOM-Cache vom IE refreshen? Anders drauf zugreifen ..?
folgender Code:
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title></title> <script type="text/javascript"> var myForm = { swapInputElement: function() { if (this.isTextarea()) { this.createInputText(); } else { this.createTextarea(); } }, isTextarea: function() { return this.getElement().tagName.toUpperCase() == "TEXTAREA"; }, getElement: function() { return document.getElementsByName(this.getName())[0]; }, getName: function() { return "myElement"; }, createTextarea: function() { var inputText = this.getElement(); var textarea = document.createElement("textarea"); textarea.name = this.getName(); textarea.value = inputText.value; inputText.parentNode.replaceChild(textarea, inputText); }, createInputText: function() { var textarea = this.getElement(); var inputText = document.createElement("input"); inputText.type = "text"; inputText.name = this.getName(); inputText.value = textarea.value; textarea.parentNode.replaceChild(inputText, textarea); } } </script> </head> <body> <form action="" method="post"> <input name="myElement" type="text" value="" /> <input type="button" onclick="myForm.swapInputElement();return false" value="swap" /> </form> </body> </html>
FF: funktioniert
IE8: funktioniert
IE7: funktioniert nicht
Konkreter Fehler: der IE 7 kann einmal swappen (input -> textarea), ab dann nicht mehr, weil getElement(), also die Objektsuche fehlschlägt. Kann ich irgendwie den DOM-Cache vom IE refreshen? Anders drauf zugreifen ..?
Kommentar