Ihr wollt Formularfelder in Abhängigkeit von dem Wert einer Radiobox deaktivieren/aktivieren?
Mit diesem selbsterklärenden Snippet könnt ihr das.
Im onChange EventHandler wird die Funktion able mit den Parametern this.checked und this.form.t aufgerufen.
this.checked ist ein Boolean-Wert und gleichzeitig die Eigenschaft ob nun aktiviert oder deaktiviert wird. Benutzt ihr statt einer Radiobox ein Auflistungsliste könnt ihr auch stattdessen this.selected benutzen.
this.form.t ist die Referenz zum Formular Element mit dem Namen "t". Alternativ könnte man hier auch andere Elemente referenziere. Z.B. mit getElementById.
formularfelder-deaktivieren.html
<title>HTML Elemente deaktivieren
</title>
<!--
var tmp = "";
function able(status, elem) {
if(status) {
tmp = elem.value;
elem.setAttribute("disabled","disabled");
elem.value = '';
} else {
elem.removeAttribute("disabled");
elem.value = tmp;
}
}
//-->
</script>
</head>
<form method="post" action="formularfelder-deaktivieren.html">
<input type="checkbox" name="r" onchange="able(this.checked, this.form.t)" />
<input type="text" name="t" />
<input type="submit" name="s" />
</form>
</body>
</html>