Вибачте за те, що запізнилися на вечірку, але я бачу місце для вдосконалення. Не стосується "відключення текстового поля", а вибору радіобоксу та спрощення коду, що робить його трохи більш надійним у майбутньому для подальших змін.
Перш за все, ви не повинні використовувати .each () і використовувати індекс, щоб вказати певну радіо-кнопку. Якщо ви працюєте з динамічним набором радіо кнопок або якщо після цього додаєте або видалите кілька перемикачів, ваш код буде реагувати на неправильну кнопку!
Далі, але це, мабуть, не було випадком, коли було зроблено ОП, я вважаю за краще використовувати .on ('click', function () {...}), а не натискати ...
http: //api.jquery. com / on /
Останнє, але не менш важливе, також код можна зробити більш простим і подальшим доказом, вибравши перемикач на основі його імені (але це з'явилося вже в дописі).
Тому я закінчив наступний код.
HTML (на основі коду 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-код
$("[name='rad1']").on('click', function() {
var disable = $(this).val() === "2";
$("#textbox1").prop("disabled", disable);
$("#checkbox1").prop("disabled", disable);
});
names може бути ідентичним, алеids повинен бути унікальним.