怎样使用js来控制checkboxlist的选择数量

binny0532 2006-12-20 10:48:59
要控制checkboxlist只能选择三个选项
我的代码如下,但是不好用,请大家指点,多谢

c#

this.cblRAreaRArea1.Attributes.Add("onchange", "if (check())");

js:

<script language="javascript">
function check()
{
if(cblRAreaRArea1.Items.Count>4)
{
alert("已超过4");
return false;
}
else
return true;
}

</script>



check函数根本不起作用,都触发不了,看了网页的源码,checkboxlist的onchange="check()"



...全文
459 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
spoky 2007-01-15
  • 打赏
  • 举报
回复
各位大虾可能忘了测试一个情况,如果已经选择,然后取消的时候,就会发现该次的取值是不正确的,取消反而同样+1,所以导致会出错
binny0532 2006-12-20
  • 打赏
  • 举报
回复
OK了
结帖,多谢
零零伍,幕白兄
binny0532 2006-12-20
  • 打赏
  • 举报
回复
呵呵
我也刚刚改出来一个

function GoCheck(tbID)
{
var iCount = 0 ;
var objtb = document.getElementById(ID);
var objs = objtb.getElementsByTagName("INPUT");
for(var i=0;i<objs.length;i++)
{
if(objs[i].checked)
{
iCount ++;
}
}
if(iCount >= 4)
{
alert("超过4");
return false;
}
}
Eddie005 2006-12-20
  • 打赏
  • 举报
回复
我上面给出的代码在asp.net1.1下测试通过,如果是asp.net2.0,则需要改写两行:

var cbID = cblistID + ":" + i;
====〉 var cbID = cblistID + "$" + i;

cpp2017 2006-12-20
  • 打赏
  • 举报
回复
改一下:

this.cblRAreaRArea1.Attributes.Add("onmousedown", "javascript:return GoCheck("+this.cblRAreaRArea1.Items.Count+");");



<SCRIPT language="javascript">
<!--
function GoCheck(ItemCount)
{

var iCount = 0;
for(var i=0;i<ItemCount;i++)
{
var chk = document.getElementById("cblRAreaRArea1_"+i);
if(chk!=null )
{
if(chk.checked)
iCount ++;
}
}
if(iCount >= 3)
{
alert("超过4");
return false;
}
}

//-->
</SCRIPT>
binny0532 2006-12-20
  • 打赏
  • 举报
回复
to:cpp2017(幕白兄)
你的方法可行,但是只适合于一行显示一个checkbox的情况
我现在是一行显示8个checkbox



<tr>
<td>
<input id="cblRAreaRArea1_0" type="checkbox" name="cblRAreaRArea1$0" /><label for="cblRAreaRArea1_0">百合花园</label>
</td>
<td>........</td>
<td>........</td>
<td>........</td>
.......
</tr>
binny0532 2006-12-20
  • 打赏
  • 举报
回复
to :Eddie005(♂) №.零零伍 (♂) cpp2017(幕白兄)

函数都是可以触发
但是,效果却没有打到只能选四个,选的超过四个还是不出现提示
cpp2017 2006-12-20
  • 打赏
  • 举报
回复
如果这个控件是autopostback 的话就一定要用 onmousedown,否则可用onclick
cpp2017 2006-12-20
  • 打赏
  • 举报
回复
this.cblRAreaRArea1.Attributes.Add("onmousedown", "javascript:return GoCheck(this);");



<SCRIPT language="javascript">
<!--
function GoCheck(tb)
{

var iCount = 0 ;
for(var i=0;i<tb.rows.length;i++)
{
if(tb.rows[i].cells[0].firstChild.checked)
{
iCount ++;
}
}
if(iCount >= 4)
{
alert("超过4");
return false;
}
}
//-->
</SCRIPT>
Eddie005 2006-12-20
  • 打赏
  • 举报
回复
解决:

<script language="javascript">
function check(cblistID)
{
var i = 0;
var cbID = cblistID + ":" + i;
var count =0;
while(document.getElementsByName(cbID).length>0)
{
if(document.getElementsByName(cbID)[0].checked){count++;}

i++;
cbID = cblistID + ":" + i;
}
if(count>3)
{
alert("最多只能选中3项");
event.returnValue = null;
}
}

</script>


c#

this.cblRAreaRArea1.Attributes.Add("onclick","check('"+this.cblRAreaRArea1.ClientID+"');");
  • 打赏
  • 举报
回复
this.cblRAreaRArea1.Attributes.Add("onchange", "return check();");
binny0532 2006-12-20
  • 打赏
  • 举报
回复
to:Eddie005(♂) №.零零伍 (♂)
对阿,我看源码是这样,那这种判断该怎么做?通过js
binny0532 2006-12-20
  • 打赏
  • 举报
回复
to:yipiaoqingshui(一瓢清水)

现在选择以后触发不了check,跟用哪个函数没关系吧?
请说说你在c#那怎么写的?
Eddie005 2006-12-20
  • 打赏
  • 举报
回复
CheckBoxList控件,最终到客户端生成的HTML是<table>,它没有onchange事件
yipiaoqingshui 2006-12-20
  • 打赏
  • 举报
回复
//全选或反选函数
function CheckItem()
{
//执行
oEl = event.srcElement;
for(i = 0;i < document.all.tags("input").length; i++)
{
if(document.all.tags("input")(i).id.indexOf("chkItem") != -1)
{
if(oEl.checked && !document.all.tags("input")(i).disabled)
{
document.all.tags("input")(i).checked = true;
document.all.tags("input")(i).parentElement.parentElement.style.backgroundColor='#AFD9FF';
}
else
{
document.all.tags("input")(i).checked = false;
document.all.tags("input")(i).parentElement.parentElement.style.backgroundColor='';
}
}
}


你调用这个

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧