input readonly
Stefan E
- javascript
0 Gernot Back0 Stefan E
1 Struppi
Hallo zusammen
Kann man mit JS das readonly attribut eines input-Feldes nicht aktivieren und deaktivieren?
document.forms[0].titel.readonly = false;
funktioniert zum Beispiel nicht.
Hallo Stefan,
Hallo zusammen
Kann man mit JS das readonly attribut eines input-Feldes nicht aktivieren und deaktivieren?
document.forms[0].titel.readonly = false;
Ja, versuche es mal mit [setAttribute()](http://de.selfhtml.org/javascript/objekte/all.htm#set_attribute)
Gruß Gernot
Hallo Stefan,
Ja, versuche es mal mit setAttribute()
Gruß Gernot
Das Problem ist ja, dass bei
<input type="text" name="bla" value="irgend ein Text" readonly="false">
das inputfeld immer noch auf readonly steht.
Hallo Stefan,
Das Problem ist ja, dass bei
<input type="text" name="bla" value="irgend ein Text" readonly="false">
> das inputfeld immer noch auf readonly steht.
Die Lösung scheint auch sehr ungewöhnlich zu sein, aber ich glaube ich habe eine. Man muss nämlich auch mit [removeAttribute()](http://de.selfhtml.org/javascript/objekte/node.htm#remove_attribute) arbeiten. setAttribute() braucht man nur für den IE und dann darf man komischerweise den zweiten Übergabeparameter entgegen der Konvention nicht als String schreiben:
~~~html
<html>
<head>
<title>Readonly-Felder freigeben</title>
<script type="text/javascript">
[code lang=javascript]
function freigeben () {
document.form.feld.setAttribute('readonly', false, 'false');
document.getElementById('feld').removeAttribute('readonly');
}
</script>
</head>
<body >
<form name="form" action="" method="" target="">
<input id="feld" type="Text" name="feld" value="Hallo" readonly size="" maxlength="">
</form>
<p><a href="#" onclick="freigeben()
">Feld freigeben</a></p>
</body>
</html>
[/code]
Gruß Gernot
Hallo nochmal,
es geht doch auch einfacher; es hat der zweite Übergabeparameter bei removeAttribute() gefehlt.
function freigeben () {
//document.form.feld.setAttribute('readonly', false, 'false');
//document.getElementById('feld').removeAttribute('readonly');
document.form.feld.removeAttribute('readonly', 'false');
}
Gruß Gernot
Vielen Dank für die Antwort.
Es funktioniert nun.
document.forms[0].titel.readonly = false;
> funktioniert zum Beispiel nicht.
Aus einem mr noch nciht erklärbaren Grund heißt dieses Attribut ganz entgegen den geflogenheiten: readOnly
document.form.feld.readOnly = false;
klappt bei mir im IE 6 und FF
Struppi.
--
[Javascript ist toll](http://javascript.jstruebig.de/)
Hallo Struppi,
document.forms[0].titel.readonly = false;
> > funktioniert zum Beispiel nicht.
>
> Aus einem mr noch nciht erklärbaren Grund heißt dieses Attribut ganz entgegen den geflogenheiten: readOnly
Was dann ja auch erklärt, warum der zweite Übergabeparameter bei removeAttribute() "false" erforderlich ist.
Gruß Gernot