如何使用javascript函数从gridview启用/禁用行方式中的复选框?
我想用一些条件在行中选中复选框如何使用javascript函数从gridview启用/禁用行方式中的复选框?,javascript,asp.net,gridview,checkbox,Javascript,Asp.net,Gridview,Checkbox,我想用一些条件在行中选中复选框 第一个条件是,当在同一行中连续选中三个复选框时,它应显示警报弹出窗口(“您不能选择连续三小时”) 下一个条件是,它不应该在每行中选择超过三个复选框 我使用了下面的java脚本,在这段代码中,它是按列方式签入的,但我想按行方式签入 我怎样才能达到这个条件 function CheckCheck() { var chkBox = document.getElementById('<%=Gv1.ClientID %>');
- 第一个条件是,当在同一行中连续选中三个复选框时,它应显示警报弹出窗口(“您不能选择连续三小时”)
- 下一个条件是,它不应该在每行中选择超过三个复选框
function CheckCheck() {
var chkBox = document.getElementById('<%=Gv1.ClientID %>');
var chkBoxCount = chkBox.getElementsByTagName("input");
var btn = document.getElementById('<%=btnsubmit.ClientID %>');
var i = 0;
var tot = 0;
for (i = 0; i < chkBoxCount.length; i++) {
if (chkBoxCount[i].checked) {
tot = tot + 1;
if (tot > 2) {
alert('Cannot check more than 2 check boxes');
chkBoxCount[i].checked = false;
return;
}
}
}
}
函数检查(){
var chkBox=document.getElementById(“”);
var chkBoxCount=chkBox.getElementsByTagName(“输入”);
var btn=document.getElementById(“”);
var i=0;
var-tot=0;
对于(i=0;i2){
警报(“不能选中超过2个复选框”);
chkBoxCount[i]。选中=false;
回来
}
}
}
}
HTML:
您可以在gridview中获取
(行)的集合,并在其中循环,查找每行中的复选框。我会将您的变量chkBox重命名为grid,因为您得到的是gridView而不是复选框:
var grid = document.getElementById('<%=Gv1.ClientID %>');
var gridRows = grid.getElementsByTagName("tr");
for (rowIndex = 0; rowIndex < gridRows.length; rowIndex++) {
var row = gridRows(rowIndex);
var chkBoxCount = row.getElementsByTagName("input");
for (i = 0; i < chkBoxCount.length; i++) {
if (chkBoxCount[i].checked) {
tot = tot + 1;
if (tot > 2) {
alert('Cannot check more than 2 check boxes');
chkBoxCount[i].checked = false;
return;
}
}
}
}
var grid=document.getElementById(“”);
var gridRows=grid.getElementsByTagName(“tr”);
对于(rowIndex=0;rowIndex2){
警报(“不能选中超过2个复选框”);
chkBoxCount[i]。选中=false;
回来
}
}
}
}
如何从您在上述代码中使用的网格中获取标记名?您的意思是“从网格中获取标记名”?如果您查看html源代码,您将看到ASP.NET将GridView呈现为html表。在上面的代码(“var gridRows=grid.getElementsByTagName(“tr”);”)中,您使用了标记名“tr”。“tr”是什么?当您使用像GridView这样的ASP.NET控件时,它被称为服务器端控件。服务器处理它并发出浏览器可以理解的标准html标记,如和(表行)。要查看此信息,请在浏览器中运行页面,右键单击页面,然后选择“查看源”或“查看页面源”。这将打开浏览器从服务器接收的html。您将看不到标记,但您将看到它的位置。表的每一行都是一个标记,表的每个单元格都是(表定义)。是的,谢谢我检查了它,我明白了,但是当我在上面的代码中使用“tr”时,它不起作用。
var grid = document.getElementById('<%=Gv1.ClientID %>');
var gridRows = grid.getElementsByTagName("tr");
for (rowIndex = 0; rowIndex < gridRows.length; rowIndex++) {
var row = gridRows(rowIndex);
var chkBoxCount = row.getElementsByTagName("input");
for (i = 0; i < chkBoxCount.length; i++) {
if (chkBoxCount[i].checked) {
tot = tot + 1;
if (tot > 2) {
alert('Cannot check more than 2 check boxes');
chkBoxCount[i].checked = false;
return;
}
}
}
}