Связывание двух флажков вместе
У меня есть два флажка
<input class="checkbox1" type="checkbox" name='1' id="example1" value="example1"/>
а также
<input class="checkbox2" type="checkbox" name='2' id="example2" value="example2"/>
Можно ли соединить эти два флажка, чтобы все, что происходит с атрибутом "флажок" одного флажка, происходило и с другим? Это должно работать для
Пользователь меняет проверенный статус
Некоторая функция javascript меняет проверенный статус
Мой фактический пример очень сложный и имеет много много флажков. Поэтому я ищу решение, в котором я могу просто определить связь между двумя флажками и больше никогда не думать об этом. спасибо карл
3 ответа
Конечно, это возможно, но зачем вам два флажка, если они ведут себя одинаково? Может быть, один флажок будет более удобным.:)
Ну, во всяком случае, с куском jQuery это должно работать нормально. Этот фрагмент позволяет назначить флажок группе, поэтому он автоматически выбирает других в той же группе.
Конечно, вы могли бы легко изменить это, например, в список идентификаторов, так что поведение не должно быть двухсторонним, но я не смог полностью определить из вашего вопроса, что вам нужно. В любом случае, добавление дополнительных флажков просто требует от них правильного атрибута.
Потому что он использует on
функционировать таким образом, он должен даже работать для флажков, которые добавляются динамически.
$(document).on('click', 'input[type="checkbox"][data-group]', function(event) {
// The checkbox that was clicked
var actor = $(this);
// The status of that checkbox
var checked = actor.prop('checked');
// The group that checkbox is in
var group = actor.data('group');
// All checkboxes of that group
var checkboxes = $('input[type="checkbox"][data-group="' + group + '"]');
// All checkboxes excluding the one that was clicked
var otherCheckboxes = checkboxes.not(actor);
// Check those checkboxes
otherCheckboxes.prop('checked', checked);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" data-group="group1">
<input type="checkbox" data-group="group2">
<input type="checkbox" data-group="group3">
<input type="checkbox" data-group="group1">
<input type="checkbox" data-group="group2">
<input type="checkbox" data-group="group3">
<input type="checkbox" data-group="group1">
Вы можете привязать обработчик события изменения к флажкам и, основываясь на значении измененного флажка, установить значение других флажков.
$(function() {
$(".checkbox_class").change(function() {
var x = this.checked;
$(".checkbox_class").prop("checked", x);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="checkbox1 checkbox_class" type="checkbox" name='1' id="example1" value="example1" />
<input class="checkbox2 checkbox_class" type="checkbox" name='2' id="example2" value="example2" />
Это может быть связано, чтобы изменить или щелкнуть событие
$("#example1").click(function (){
$("#example2").click();
});
$("#example2").click(function (){
$("#example1").click();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="checkbox1" type="checkbox" name='1' id="example1" value="example1"/>
<input class="checkbox2" type="checkbox" name='2' id="example2" value="example2"/>