Извините за опоздание на вечеринку, но я вижу здесь некоторые возможности для улучшения. Не в отношении «отключить текстовое поле», а в отношении выбора радионаблюдения и упрощения кода, что делает его более надежным для будущих изменений.
Прежде всего, вы не должны использовать .each () и использовать индекс, чтобы указывать на конкретный переключатель. Если вы работаете с динамическим набором переключателей или если впоследствии вы добавляете или удаляете некоторые переключатели, то ваш код будет реагировать на неправильную кнопку!
Затем, но это, вероятно, не тот случай, когда был создан OP, я предпочитаю использовать .on ('click', function () {...}) вместо click ...
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 должны быть уникальными.