@Young_nigilist

Как сделать input=text неактивным с помощью radio?

Я только начинаю осваивать jQuery и JavaScript, не могу понять как сделать.
Есть блок с доставкой в котором присутствуют два radio и text.
<input type="radio" checked="checked" id="inMKAD" name="delivery" value="1">
<label for="inMKAD" class="control">в пределах МКАД</label>
<input type="radio" id="outMKAD" name="delivery" value="2">
<label for="outMKAD" class="control">за МКАД, km </label>
<input type="text" class="form-control" id="kmOutMKAD" disabled>

При выборе radio "в пределах МКАД", сделать text disabled. Так же снять disabled при выборе radio "за МКАД".
jQuery(document).ready(function(){
$('#outMKAD').on('change', function(){
    if($('#outMKAD').prop('checked') == true){
        $('#kmOutMKAD').prop('disabled', false);
    }
    else {
      $('#kmOutMKAD').prop('disabled', true);
    };
}
  • Вопрос задан
  • 449 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const inputSelector = '#kmOutMKAD';
const radioSelector = '[name="delivery"]';
const disabledValue = '1';

$(radioSelector).on('change', function() {
  $(inputSelector).prop('disabled', this.value === disabledValue);
});

// или

const input = document.querySelector(inputSelector);
const radios = document.querySelectorAll(radioSelector);
const onChange = e => input.disabled = e.target.value === disabledValue;
radios.forEach(n => n.addEventListener('change', onChange));
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
beliyadm
@beliyadm
because open source matters
jsfiddle.net/beliyadm/smwhd2rq
по умолчанию активен батон за мкадом и поле неактивно, при клике на "в пределах" убираем ридонли и поле работает (ну класс я для наглядности добавил)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы