Es tut mir leid, dass ich so spät auf der Party bin, aber ich sehe hier Raum für Verbesserungen. Nicht in Bezug auf "Textbox deaktivieren", sondern in Bezug auf die Auswahl der Radionbox und die Vereinfachung des Codes, wodurch sie für spätere Änderungen etwas zukunftssicherer wird.
Zunächst sollten Sie nicht .each () verwenden und den Index verwenden, um auf ein bestimmtes Optionsfeld hinzuweisen. Wenn Sie mit einem dynamischen Satz von Optionsfeldern arbeiten oder anschließend einige Optionsfelder hinzufügen oder entfernen, reagiert Ihr Code auf das falsche Optionsfeld!
Als nächstes, aber das war wahrscheinlich nicht der Fall, als das OP erstellt wurde, bevorzuge ich .on ('click', function () {...}) anstelle von click ...
http: //api.jquery. Komm schon/
Zu guter Letzt könnte auch der Code einfacher und zukunftssicherer gemacht werden, indem das Optionsfeld anhand seines Namens ausgewählt wird (der jedoch bereits in einem Beitrag enthalten ist).
Also habe ich den folgenden Code erhalten.
HTML (basierend auf dem Code von okw)
<span id="radiobutt">
<input type="radio" name="rad1" value="1" />
<input type="radio" name="rad1" value="2" />
<input type="radio" name="rad1" value="3" />
</span>
<div>
<input type="text" id="textbox1" />
<input type="checkbox" id="checkbox1" />
</div>
JS-Code
$("[name='rad1']").on('click', function() {
var disable = $(this).val() === "2";
$("#textbox1").prop("disabled", disable);
$("#checkbox1").prop("disabled", disable);
});
names kann identisch sein, aberids muss eindeutig sein.