gpt4 book ai didi

javascript - 使用“全选”时排除禁用的复选框

转载 作者:行者123 更新时间:2023-12-01 02:05:10 28 4
gpt4 key购买 nike

我在表中有带有标签的复选框。我在表“全选”之外添加了一个复选框,ID 为“chkbox”。现在下面的代码工作正常。这是选择和取消选择表中的所有复选框。现在有一些页面由于业务逻辑而禁用了一些复选框。我希望这些复选框不应该受到影响。

<script type="text/javascript">
var s = jQuery.noConflict();
s(document).ready(function() {
s('#chkbox').change(function() {
var all = s('table').find('input[type="checkbox"]');
if (this.checked) {
all.prop('checked', true);
} else {
all.prop('checked', false);
}
});
});
</script>

最佳答案

使用:not():disabled选择器。

var all = $('table').find('input[type="checkbox"]:not(:disabled)');
^^^^^^^^^^^^^^^^

这不会选择禁用的复选框

$('#selectAll').change(function() {
$(':checkbox:not(:disabled)').prop('checked', this.checked);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<input type="checkbox" id="selectAll" />Select All

<ul>
<li>
<input type="checkbox" disabled />
</li>
<li>
<input type="checkbox" />Not disabled</li>
<li>
<input type="checkbox" />Not disabled</li>
<li>
<input type="checkbox" disabled />
</li>
<li>
<input type="checkbox" />Not disabled</li>
</ul>

<小时/>

您还可以使用:enabled选择器。

$('table').find('input[type="checkbox"]:enabled')

$('#selectAll').change(function() {
$(':checkbox:enabled').prop('checked', this.checked);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<input type="checkbox" id="selectAll" /> Select All

<ul>
<li>
<input type="checkbox" disabled />
</li>
<li>
<input type="checkbox" />Not disabled</li>
<li>
<input type="checkbox" />Not disabled</li>
<li>
<input type="checkbox" disabled />
</li>
<li>
<input type="checkbox" />Not disabled</li>
</ul>

请注意::enabled == :not(:disabled)

关于javascript - 使用“全选”时排除禁用的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35333044/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com