只选中一个复选框并取消选中其他复选框
Check only one checkbox and unchek others
我当时试图只选中一个复选框,其他复选框取消选中,但是当我想选中新的 chekcbox 时,pervious 将取消选中,依此类推。
我试过这段代码:
JS文件
$('input[type="checkbox"]').click(function() {
$(".check_class").attr("checked", false);
$(this).attr("checked", true);
});
HTML 文件
<ons-list-header>Takistused</ons-list-header>
<ons-list-item modifier="tappable">
<label class="checkbox checkbox--noborder checkbox--list-item">
<input type="checkbox" id="example">
<div class="checkbox__checkmark checkbox--noborder__checkmark checkbox--list-item__checkmark"></div>
vihmaveerenn
</label>
</ons-list-item>
<ons-list-item modifier="tappable">
<label class="checkbox checkbox--noborder checkbox--list-item" id="test">
<input type="checkbox" id="example">
<div class="checkbox__checkmark checkbox--noborder__checkmark checkbox--list-item__checkmark" ></div>
äärekivi
</label>
</ons-list-item>
<ons-list-item modifier="tappable" >
<label class="checkbox checkbox--noborder checkbox--list-item" id="test1">
<input type="checkbox" id="example">
<div class="checkbox__checkmark checkbox--noborder__checkmark checkbox--list-item__checkmark"></div>
munakivi tee
</label>
</ons-list-item>
</ons-list>
我做错了什么?我尝试了不同的方法,但它在实际使用中不起作用。
对于此类功能,您确实应该使用单选按钮,但是您可以简单地从具有 not
的一组匹配项中排除一个项目,如下所示:
$('input[type="checkbox"]').click(function() {
$('input[type="checkbox"]').not(this).prop("checked", false);
});
JSFiddle: http://jsfiddle.net/TrueBlueAussie/4n2e31oq/
请注意,对于 checked
.
等某些属性,您需要使用 prop
而不是 attr
您可以通过缓存复选框的选择来提高效率:
var $checks = $('input[type="checkbox"]');
$checks.click(function() {
$checks.not(this).prop("checked", false);
});
试试下面的 .not(this)
:
$(document).on('click', 'input[type="checkbox"]', function() {
$('input[type="checkbox"]').not(this).prop('checked', false);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="checkbox" id="one" />
<input type="checkbox" id="two" />
<input type="checkbox" id="three" />
<input type="checkbox" id="four" />
$(function () {
$('input[type=checkbox]').click(function () {
var chkBox = document.getElementById('<%= chkBranchRoleTransaction.ClientID %>');
var chks = chkBox.getElementsByTagName('INPUT');
for (i = 0; i < chks.length; i++) {
chks[i].checked = false;
}
$(this)[0].checked = true;
});
});
如果您想使用 class 执行此操作。您已添加 class 并删除当前元素除外。
jQuery(document).on('click', '.esg-filterbutton', function() {
jQuery(this).addClass('selected');
jQuery('.esg-filterbutton').not(this).removeClass('selected');
});
我当时试图只选中一个复选框,其他复选框取消选中,但是当我想选中新的 chekcbox 时,pervious 将取消选中,依此类推。
我试过这段代码:
JS文件
$('input[type="checkbox"]').click(function() {
$(".check_class").attr("checked", false);
$(this).attr("checked", true);
});
HTML 文件
<ons-list-header>Takistused</ons-list-header>
<ons-list-item modifier="tappable">
<label class="checkbox checkbox--noborder checkbox--list-item">
<input type="checkbox" id="example">
<div class="checkbox__checkmark checkbox--noborder__checkmark checkbox--list-item__checkmark"></div>
vihmaveerenn
</label>
</ons-list-item>
<ons-list-item modifier="tappable">
<label class="checkbox checkbox--noborder checkbox--list-item" id="test">
<input type="checkbox" id="example">
<div class="checkbox__checkmark checkbox--noborder__checkmark checkbox--list-item__checkmark" ></div>
äärekivi
</label>
</ons-list-item>
<ons-list-item modifier="tappable" >
<label class="checkbox checkbox--noborder checkbox--list-item" id="test1">
<input type="checkbox" id="example">
<div class="checkbox__checkmark checkbox--noborder__checkmark checkbox--list-item__checkmark"></div>
munakivi tee
</label>
</ons-list-item>
</ons-list>
我做错了什么?我尝试了不同的方法,但它在实际使用中不起作用。
对于此类功能,您确实应该使用单选按钮,但是您可以简单地从具有 not
的一组匹配项中排除一个项目,如下所示:
$('input[type="checkbox"]').click(function() {
$('input[type="checkbox"]').not(this).prop("checked", false);
});
JSFiddle: http://jsfiddle.net/TrueBlueAussie/4n2e31oq/
请注意,对于 checked
.
prop
而不是 attr
您可以通过缓存复选框的选择来提高效率:
var $checks = $('input[type="checkbox"]');
$checks.click(function() {
$checks.not(this).prop("checked", false);
});
试试下面的 .not(this)
:
$(document).on('click', 'input[type="checkbox"]', function() {
$('input[type="checkbox"]').not(this).prop('checked', false);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="checkbox" id="one" />
<input type="checkbox" id="two" />
<input type="checkbox" id="three" />
<input type="checkbox" id="four" />
$(function () {
$('input[type=checkbox]').click(function () {
var chkBox = document.getElementById('<%= chkBranchRoleTransaction.ClientID %>');
var chks = chkBox.getElementsByTagName('INPUT');
for (i = 0; i < chks.length; i++) {
chks[i].checked = false;
}
$(this)[0].checked = true;
});
});
如果您想使用 class 执行此操作。您已添加 class 并删除当前元素除外。
jQuery(document).on('click', '.esg-filterbutton', function() {
jQuery(this).addClass('selected');
jQuery('.esg-filterbutton').not(this).removeClass('selected');
});