复选框像单选按钮一样工作,但如何取消选中?
Checkboxes working like radio button, but how to uncheck?
<div id="checkboxes">
<label><input type="checkbox" name="box1" value="orange" class="btn"> Oranges</label>
<label><input type="checkbox" name="box2" value="apple" class="btn"> Apples</label>
</div>
<script type="text/javascript">
jQuery(function()
{
jQuery(document).on("change", ".btn", function()
{
jQuery(".btn").prop("checked", false);
if (! this.checked)
jQuery(this).prop("checked", true);
});
});
</script>
这很适合让复选框像单选按钮一样工作,但“取消选中”不起作用。如何让用户也可以取消选中?
默认情况下您会得到该行为。在这种情况下,JS 需要做的就是取消选中每个 .btn
元素,除了引发事件的元素:
jQuery($ => {
$(document).on("change", ".btn", function() {
$(".btn").not(this).prop("checked", false);
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="checkboxes">
<label><input type="checkbox" name="box1" value="orange" class="btn"> Oranges</label>
<label><input type="checkbox" name="box2" value="apple" class="btn"> Apples</label>
</div>
<div id="checkboxes">
<label><input type="checkbox" name="box1" value="orange" class="btn"> Oranges</label>
<label><input type="checkbox" name="box2" value="apple" class="btn"> Apples</label>
</div>
<script type="text/javascript">
jQuery(function()
{
jQuery(document).on("change", ".btn", function()
{
jQuery(".btn").prop("checked", false);
if (! this.checked)
jQuery(this).prop("checked", true);
});
});
</script>
这很适合让复选框像单选按钮一样工作,但“取消选中”不起作用。如何让用户也可以取消选中?
默认情况下您会得到该行为。在这种情况下,JS 需要做的就是取消选中每个 .btn
元素,除了引发事件的元素:
jQuery($ => {
$(document).on("change", ".btn", function() {
$(".btn").not(this).prop("checked", false);
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="checkboxes">
<label><input type="checkbox" name="box1" value="orange" class="btn"> Oranges</label>
<label><input type="checkbox" name="box2" value="apple" class="btn"> Apples</label>
</div>