我有5个复选框,只允许一个。让我们说用户点击复选框1,但如果他点击复选框2,则必须取消选中复选框1。我怎样才能做到这一点?
HTML
<div class="form-group form-group-custom" id="checkboxes">
<?php
foreach ( $education_levels_array as $key => $employee ) {
echo '
<div class="checkbox checkbox-inline">
<input class="educationCheckboxes" type="checkbox" name="userEducationDegree[]" id=0' . $employee['education_id'] . ' value="' . $employee['education_id'] . '" />
<label for=0' . $employee['education_id'] . '>' . $employee['education'] . '</label>
</div>';
}
?>
</div>
我尝试将其存储在变量中,但现在它不会让我选择任何选项。
var lastChecked;
$(".educationCheckboxes").on("change", function () {
console.log(lastChecked);
if ($(this).prop("checked", true)) {
lastChecked = $(this);
}
lastChecked.prop("checked",false);
});
答案 0 :(得分:1)
使用类change
的所有复选框的educationCheckboxes
事件。首先检查当前选中的复选框是否已选中。如果是,则取消选中使用类educationCheckboxes
的类选择器的所有复选框。这将取消选中所有复选框,包括当前选中的复选框
再次检查当前复选框。而已
$('.educationCheckboxes').change(function(){
if($(this).is(':checked')){
$('.educationCheckboxes').prop('checked',false);
$(this).prop('checked',true);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" class="educationCheckboxes">
<input type="checkbox" class="educationCheckboxes">
<input type="checkbox" class="educationCheckboxes">
<input type="checkbox" class="educationCheckboxes">
答案 1 :(得分:1)
在您的代码中,如果选中此复选框,则取消选中当前复选框。 您需要更改您执行操作的顺序。
var lastChecked = null;
$(".educationCheckboxes").on("change", function () {
console.log(lastChecked);
if(lastChecked && lastChecked != $(this)){
lastChecked.prop("checked", false);
}
if ($(this).prop("checked", true)) {
lastChecked = $(this);
}
});