@smithana

Как задать enable/disable для input text при помощи радиобаттона?

Добрый день.

застрял с простейшей с виду задачей.
Есть форма, в которой можно выбрать 1 вариант ответа. Последний радиобаттон (РБ) идёт с текстом "другое" и соответственно к нему привязан input text, в который можно вписать этот другой вариант.

Хочется сделать так, чтобы текст можно было вводить только если выбран РБ "другое".
Знаю, что можно это сделать с помощью css, например делать display none, или скрывать Input, а вместо него показывать похожий div.

Но хочется решить просто с помощью селекторов enable/disable и js.
С помощью on('change') я без проблем могу отследить когда чекается РБ и задать enable для Input text.
НО! почему-то on('change') не срабатывает, если я чекаю другой РБ.

Вот пример:
https://jsfiddle.net/2yv0cgpf/

Спасибо.
  • Вопрос задан
  • 496 просмотров
Решения вопроса 2
gubin_niko
@gubin_niko
Вам нужно отслеживать изменения вообще всех этих кнопок. Внутри обработчика уже смотрите на значение выбранной кнопки $(this).val(), если 1 или 2, то поле заблокировано (prop disabled true), иначе разблокировано (prop disabled false). Если непонятно, то пришлю изменения уже. Пробуйте))

P.S. https://jsfiddle.net/2yv0cgpf/1/
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
XXXXPro
@XXXXPro
Fullstack Web developer
Можно обойтись без JavaScript: воспользоваться псевдоклассом :checked и возможностью указывать следующий тег через +,
То есть если имеем код
<input type=checkbox id="other" value="other" /><label for="other">Другое</label>
<div><input type="text" name="other_value"/></div>

то можно прописать такой CSS:
#other+label+div { display: none }
#other:checked+label+div { display: block }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы