dynamisch "readonly input" erstellen?

msy

Grünschnabel
Hallo ,

ich lass dyn. ein Formular erstellen. Ich wollte ein Eingabefeld erstellen,das nicht geändert werden darf.Deswegen lass ich js folgendes erstellen und schreiben. Das Problem ist, dass js schreibt einen ganznormalen Eingabefeld kein "readonly".

Erstellen:
Code:
...
str = (str == ' ')
	?'The Basket is <input style=\"border: #6499ff solid 1px"\ name=\"Basket"\ value=\"Empty"\readonly>'
			 :str;
und irgendwann Schreiben:

Code:
......
document.getElementById("EditLayer").innerHTML =str;

ich habe auch mit xhtml attr. readonly="readonly" probiert aber leider das gleiche Ergebniss. Wo ist der Fehler?

Danke.
 
Sieht mir ganz nach einem von vielen innerHTML-Bugs aus (innerHTML hat z.B. auch Probleme tags, besonders Bilder in Tabellen zu schreiben etc.). innerHTML ist kein offizieller Teil von JavaScript bzw. DOM sondern wie könnte es anders sein eine Microsoft-Erfindung. Wenn man schon "winzigweich" heißt... :offtopic:

Naja, egal du wirst es wohl über DOM-Methoden machen müssen. Benutze createElement(), setAttribute() und appendChild()
 
Also ich hab ehrlich gesagt nicht das Gefühl, dass es an innerHTML liegt, vielmehr glaube ich, dass diese Syntax nicht wirklich korrekt ist:
Code:
'The Basket is <input style=\"border: #6499ff solid 1px"\ name=\"Basket"\ value=\"Empty"\readonly>
Korrekt müsste es doch so aussehen:
Code:
'The Basket is <input style=\"border: #6499ff solid 1px"\ name=\"Basket"\ value=\"Empty\" readonly>
Also den letzten Backslash vor das Zollzeichen und danach noch einen Abstand.
 
Ach verdammt, du hast recht, die Syntax ist nicht korrekt du escapst einmal das Anführungszeichen ( " ) richting nämlich so \" und einmal machst du's genau anders rum nämlich so "\.

Du musst also alle "\ in \" umwandeln.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück