Есть два чекбокса. Один сразу отмечен, второй нет. Нужно когда кликаешь по чекбоксу оба изменил состояния 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">
Можно сделать так:
$('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">
Не имеет смысла менять флаг для текущего, он автоматом делается
Вот так покороче
$('input:checkbox').click(function () {
var a = !$(this).is(':checked');
$('input:checkbox').not(this).eq(0).prop('checked', a);
})
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости