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