我有一个选择网格的所有脚本,它选择所有启用和禁用的框,我希望脚本只选择网格上启用的复选框并丢弃禁用的复选框。
尝试了不同的方法,但没有一种方法有效。 这是我的Java脚本:
<script type="text/javascript" language="javascript">
function CheckAllPaid(Checkbox) {
var GridVwHeaderChckbox = document.getElementById("<%=dg.ClientID%>");
for (i = 1; i < GridVwHeaderChckbox.rows.length; i++) {
GridVwHeaderChckbox.rows[i].cells[0].getElementsByTagName("INPUT")[0].checked = Checkbox.checked ;
}
}
</script>
答案 0 :(得分:1)
您可以使用选择器。这将为您提供该网格面板内所有已检查的输入。
编辑:
<script type="text/javascript" language="javascript">
function CheckAllPaid(Checkbox) {
var GridVwHeaderChckbox = document.getElementById("<%=dg.ClientID%>");
var checked = GridVwHeaderChckbox.querySelectorAll('input[type=checkbox]').filter(function(input){
if(!input.disabled){
input.checked = true;
return true;
}else{
return false;
}
});
</script>
答案 1 :(得分:0)
此代码段可行。它循环GridView中的所有复选框,并根据is_checked
检查/取消选中它们或评估它们的状态等。
<script type="text/javascript">
function changeAllCheckBoxes(is_checked) {
$("#<%= GridView1.ClientID %> tr").each(function () {
$(this).find("td input:checkbox").each(function (index, element) {
this.checked = is_checked;
//or
if (this.checked) {
//do stuff
}
});
});
}
</script>
或者,如果您要检查/取消选中特定列中的所有复选框,请沿列索引发送。
<script type="text/javascript">
function changeAllCheckBoxes(is_checked, columnIndex) {
$("#<%= GridView1.ClientID %> tr").each(function () {
$(this).find("td input:checkbox").each(function (index, element) {
if (index == columnIndex) {
this.checked = is_checked;
}
});
});
}
</script>
答案 2 :(得分:0)
<input disabled="disabled" class="YourCheckBoxClacc" type="checkbox" value="10" />
<input class="YourCheckBoxClacc" type="checkbox" value="30" />
JQuery:
$('.YourCheckBoxClacc:enabled:checked')
这会将Checked
仅设置为已启用复选框。