Przepraszam, że spóźniłem się na przyjęcie, ale widzę tutaj miejsce na poprawę. Nie chodzi o „wyłączenie pola tekstowego”, ale o wybór radionboxa i uproszczenie kodu, co czyni go nieco bardziej odpornym na przyszłość, do późniejszych zmian.
Przede wszystkim nie powinieneś używać .each () i używać indeksu do wskazywania konkretnego przycisku opcji. Jeśli pracujesz z dynamicznym zestawem przycisków opcji lub jeśli później dodasz lub usuniesz niektóre przyciski opcji, Twój kod zareaguje na niewłaściwy przycisk!
Następnie, ale prawdopodobnie tak nie było, gdy tworzono OP, wolę używać .on ('click', function () {...}) zamiast click ...
http: //api.jquery. com / on /
Co nie mniej ważne, kod można by uczynić prostszym i przyszłym, wybierając przycisk radiowy oparty na jego nazwie (ale pojawił się już w poście).
Więc skończyłem z następującym kodem.
HTML (oparty na kodzie 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>
Kod JS
$("[name='rad1']").on('click', function() {
var disable = $(this).val() === "2";
$("#textbox1").prop("disabled", disable);
$("#checkbox1").prop("disabled", disable);
});
names mogą być identyczne, aleidmuszą być unikalne.