Всем привет. Есть чекбокс и инпут. По нажатию на чекбокс, инпут становится активным. Но когда чекбокс отключаешь, инпут не становится снова disabled, а продолжает быть активным. Подскажите, как сделать чтобы инпут вновь стал выключенным. Вот код:
$(function() {
$(":checkbox").on("click", function() {
var dataClass = $(this).data("class");
$(".js-all").each(function() {
this.disabled = !$(this).hasClass(dataClass);
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="checker squaredFour">
<label>
<input class="checkbox" type="checkbox" name="checkbox-test" data-class="js-a">
<span class="checkbox-custom"></span>
</label>
</div>
<label for="inputReturn" class="col-sm-2 control-label">Обратно</label>
<div class="col-sm-10">
<input type="text" class="form-control datepicker js-all js-a" id="inputReturn" disabled>
<input type="button" value="">
</div>
$(function() {
$(":checkbox").on("click", function() {
var dataClass = $(this).data("class");
// dataClass мы получили равным "js-all"
$(".js-all").each(function() {
// пробегаем по всем элементам с классом "js-all" и для тех,
// у кого он не установлен, ставим disabled = false
this.disabled = !$(this).hasClass(dataClass);
});
});
});
Вопрос. У скольки элементов с классом js-all
не установлен класс js-all
? Правильно. Ни у одного.
Ваш код должен выглядеть, примерно, так
$(function() {
$(":checkbox").on("click", function() {
var checked = this.checked;
$(".js-all").each(function() {
this.disabled = !checked;
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="checker squaredFour">
<label>
<input class="checkbox" type="checkbox" name="checkbox-test" data-class="js-a">
<span class="checkbox-custom"></span>
</label>
</div>
<label for="inputReturn" class="col-sm-2 control-label">Обратно</label>
<div class="col-sm-10">
<input type="text" class="form-control datepicker js-all js-a" id="inputReturn" disabled>
<input type="button" value="">
</div>
А еще лучше так
$(function() {
$(":checkbox").on("click", function() {
$(".js-all").prop({disabled: !this.checked});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="checker squaredFour">
<label>
<input class="checkbox" type="checkbox" name="checkbox-test" data-class="js-a">
<span class="checkbox-custom"></span>
</label>
</div>
<label for="inputReturn" class="col-sm-2 control-label">Обратно</label>
<div class="col-sm-10">
<input type="text" class="form-control datepicker js-all js-a" id="inputReturn" disabled>
<input type="button" value="">
</div>
У вас при событии click в this.checked приходит состояние чекбокса. Вот исходя из этого состояния и выставляйте свойство disabled у инпута:
$(function() {
$(":checkbox").on("click", function(e) {
var checked = this.checked;
var dataClass = $(this).data("class");
$(".js-all").each(function() {
this.disabled = !checked;
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="checker squaredFour">
<label>
<input class="checkbox" type="checkbox" name="checkbox-test" data-class="js-a">
<span class="checkbox-custom"></span>
</label>
</div>
<label for="inputReturn" class="col-sm-2 control-label">Обратно</label>
<div class="col-sm-10">
<input type="text" class="form-control datepicker js-all js-a" id="inputReturn" disabled>
<input type="button" value="">
</div>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Пытаюсь сделать всплывающую подсказку для input, чтобы пользователь мог по первым введенным символам увидеть какие варианты доступныИспользуя...
При возникновении ошибки любого запроса все функции перестают быть функциямиНапример, есть сервис для работы с пользователями, у которого...