如何在javascript中限制gridview中的按列和按行复选框选择
我有一个网格视图,带有5行6列的复选框。我的要求是我可以选择行3复选框,在整个网格中,我一次可以选择总共6个复选框。我已经尝试了以下代码,但它不起作用如何在javascript中限制gridview中的按列和按行复选框选择,javascript,jquery,gridview,Javascript,Jquery,Gridview,我有一个网格视图,带有5行6列的复选框。我的要求是我可以选择行3复选框,在整个网格中,我一次可以选择总共6个复选框。我已经尝试了以下代码,但它不起作用 function IdExists(elements, id) { for (var i = 0; i < elements.length; i++) { if (elements[i].id.indexOf(id) > -1) { return true
function IdExists(elements, id) {
for (var i = 0; i < elements.length; i++) {
if (elements[i].id.indexOf(id) > -1) {
return true;
}
}
return false;
}
function Check_Click(chkBx) {
var c = 0;
Parent = document.getElementById('<% =Gv1.ClientID %>');
for (i = 0; i < Parent.rows.length; i++) {
if (items[i].checked) {
c = c + 1;
}
var row = Parent.rows[i];
var items = row.getElementsByTagName('input');
if (items.length > 0) {
if (IdExists(items, chkBx.id)) {
var tot = 0,cc=0;
for (j = 0; j < items.length; j++)
{
if (items[j].type == 'checkbox' && items[j].checked && items[j].disabled == false)
{
tot = tot + 1;
if ((tot > 3)&&(c>0))
{
alert('Cannot take more than 3 hours');
chkBx.checked = false;
return;
}
}
}
}
}
}
}
</script>
函数IdExists(元素,id){
对于(var i=0;i-1){
返回true;
}
}
返回false;
}
功能检查\点击(chkBx){
var c=0;
父项=document.getElementById(“”);
对于(i=0;i0){
if(IdExists(items,chkBx.id)){
var-tot=0,cc=0;
对于(j=0;j3)和(&(总收益>0))
{
警报(“不能超过3小时”);
chkBx.checked=false;
返回;
}
}
}
}
}
}
}
使用jQuery,您可以用更少的代码获得结果。只需给所有复选框一个CssClass,比如,mycheckbox
$(".mycheckbox").on("click", function(){
var elm = this, $elm = $(elm);
if(elm.checked){
var totalCheckedBoxes = $(".mycheckbox:checked").length;
var rowWiseCheckedBoxes = $elm.closest('tr').find(".mycheckbox:checked").length;
if(totalCheckedBoxes === 6 || rowWiseCheckedBoxes === 3){
elm.checked = false;
if(totalCheckedBoxes === 6){
alert("Cannot select more than 6");
}
else{
alert("Cannot take more than 3 hours");
}
}
}
});
您在这里收到任何错误?没有收到任何错误。它是单独按行检查的,即如果我单击“连续3”复选框,它会弹出窗口