Scusa per il ritardo alla festa, ma vedo margini di miglioramento qui. Non riguarda la "disabilitazione della casella di testo", ma la selezione di radionbox e la semplificazione del codice, rendendolo un po 'più a prova di futuro, per modifiche successive.
Prima di tutto, non dovresti usare .each () e usare l'indice per indicare un pulsante di opzione specifico. Se lavori con un set dinamico di pulsanti di opzione o se aggiungi o rimuovi alcuni pulsanti di opzione in seguito, il tuo codice reagirà al pulsante sbagliato!
Successivamente, ma probabilmente non era così quando è stato creato l'OP, preferisco usare .on ('click', function () {...}) invece di fare clic ...
http: //api.jquery. com / su /
Inoltre, ma non meno importante, anche il codice potrebbe essere reso più semplice ea prova di futuro selezionando il pulsante di opzione in base al suo nome (ma che è già apparso in un post).
Quindi ho finito con il seguente codice.
HTML (basato sul codice di 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 possono essere identici, maiddevono essere univoci.