当点击checkAll时防止已经禁用的复选框被检查
以下是我用于检查所有复选框的代码。
jQuery("#checkAll").on('click',function() { // bulk checked
var status = this.checked;
jQuery(".selectRow").each( function() {
jQuery(this).prop("checked",status);
});
});
但是当我点击CheckAll链接时,已经禁用了复选框。 点击checkAll链接时如何阻止已禁用的复选框被选中? 任何帮助将不胜感激。
你几乎在那里。 在当前代码中使用not(“:disabled”)过滤器,它将省去禁用的复选框。
jQuery(".selectRow").not(":disabled")...
看到这个看起来非常相似的问题:jquery选择所有未被禁用的复选框
您可以使用:not
选择器来选择没有[disabled]
属性的每个checkbox
:
$('#checkAll').on("click", function(event){
$('input[type="checkbox"]:not([disabled])').prop('checked', true)
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" /><br />
<input type="checkbox" disabled="disabled" /><br />
<input type="checkbox" /><br />
<input id="checkAll" type="button" value="check all" />
关于它如何工作的一个简单例子
<!DOCTYPE html>
<html lang="en">
<html>
<head>
<title>Test</title>
<script src="http://code.jquery.com/jquery-3.1.1.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(doReady);
function doReady()
{
jQuery('#checkAll')
.on("click",
function (event) {
var $that = null;
event.preventDefault();
jQuery.each(jQuery(".selectRow"),
function (index, value) {
$that = jQuery(value);
if (!$that.is(':checked') && !$that.is(":disabled")) {
jQuery(this).attr("checked", "checked");
}
}
);
}
);
}
</script>
</head>
<body>
<button id="checkAll" name="checkAll">check</button>
<input type="checkbox" class="selectRow" />
<input type="checkbox" class="selectRow" />
<input type="checkbox" class="selectRow" />
<input type="checkbox" class="selectRow" />
<input type="checkbox" class="selectRow" />
<input type="checkbox" class="selectRow" disabled="disabled" />
</body>
</html>
请注意,最好将相同的jQuery选择器分配给变量,以避免在整个DOM树上获得第二次。
另外请注意,你错过了代码示例中的大括号。
链接地址: http://www.djcxy.com/p/71043.html上一篇: prevent already disabled checkbox from being checked when click on checkAll
下一篇: jQuery onchange event won't prop disabled attribute of HTML to false