Неправильно переключаются checkbox-ы

240
15 июля 2017, 08:16

Есть два чекбокса. Один сразу отмечен, второй нет. Нужно когда кликаешь по чекбоксу оба изменил состояния checked на обратное тому, что сейчас есть. Если кликать только по одному чекбоксу то все ок. Но если после кликнуть по другому - все ломается.

В любом случае должен быть хоть один чекбокс отмечен

$('input:checkbox').click(function () { 
 
  if( !$(this).is(':checked')) { 
 
    $('input:checkbox').not(this).eq(0).attr('checked', 'checked'); 
 
    $(this).eq(0).removeAttr('checked'); 
 
  } else { 
 
    $('input:checkbox').not(this).eq(0).removeAttr('checked'); 
 
    $(this).eq(0).attr('checked', 'checked'); 
 
  } 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<input type="checkbox" name="recruiter-switch" class="onoffswitch-checkbox" id="recruiter" checked> 
<input type="checkbox" name="company-switch" class="onoffswitch-checkbox" id="company">

Answer 1

Можно сделать так:

$('input:checkbox').click(function () { 
 
  if( !$(this).is(':checked')) { 
 
    $('input:checkbox').not(this).eq(0).prop('checked', true); 
 
  } else { 
 
    $('input:checkbox').not(this).eq(0).prop('checked', false); 
 
  } 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<input type="checkbox" name="recruiter-switch" class="onoffswitch-checkbox" id="recruiter" checked> 
<input type="checkbox" name="company-switch" class="onoffswitch-checkbox" id="company">

Не имеет смысла менять флаг для текущего, он автоматом делается

Answer 2

Вот так покороче

$('input:checkbox').click(function () {
    var a = !$(this).is(':checked');
    $('input:checkbox').not(this).eq(0).prop('checked', a);
})
READ ALSO
форматирование текста (javascript)

форматирование текста (javascript)

здравствуйте, в функцию поступает такой текст:

255
mysql суммирование элементов по дате

mysql суммирование элементов по дате

Здравствуйте! В бд хранится информация о платежах (дата и сумма платежа), например:

259
Оптимизировать MySQL запрос фреймворк Laravel

Оптимизировать MySQL запрос фреймворк Laravel

Доброго времени суток, друзьяПомогите оптимизировать запрос для фильтрации данных

227
Задать параметр в JPA Repository

Задать параметр в JPA Repository

Нужно из базы даних вытянуть топ категорий по их рейтингуНапример: "SELECT category_name FROM category ORDER BY rating DESC LIMIT ?" вместо знака вопроса должен передаваться...

272