CheckBox的问题

microsoftAnson 2010-02-08 10:51:36
当我选择CheckBox的时候,比如我只能让你选择2项 ,如果你选择3项的时候弹出对话框提示,最困难的这个条件是动态的,
各位大侠帮忙...谢谢
...全文
178 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
microsoftAnson 2010-02-10
  • 打赏
  • 举报
回复
是的 我现在在后台是用的隐藏控件的,现在只是暂时用下,还得用JS来实现,不然每次都刷新下 太不科学了。呵呵
fangyuantdy 2010-02-09
  • 打赏
  • 举报
回复
还是JS做比较好点,没点一次回发一次太浪费资源了
页面加载的时候给隐藏控件赋值允许选的个数,CheckBox选中的时候循环遍历是否超过个数,超过就报MSG
microsoftAnson 2010-02-09
  • 打赏
  • 举报
回复
解决了:

function doCheck(ctrl,checkboxname,MaxSelect,MaxCheckbox) {
alert("1");
   var NumChecked = 0;
   var thisCtrl;
   var i;
   i = 1;
   while ((i <= MaxCheckbox) && (NumChecked <= MaxSelect)) {
   thisCtrl = eval("ctrl.form." + checkboxname + i);
   if ((thisCtrl != ctrl) && (thisCtrl.checked)) {
   NumChecked++;
   }
   i++;
   }
   if (NumChecked == MaxSelect) {
   ctrl.checked = false;
   alert("最多只能选"+MaxSelect+"项!");
   }

不过 在后台 传递JS的参数
Kobayashi 2010-02-08
  • 打赏
  • 举报
回复
你可以设置一个全局变量。这个变量是Int型的。而且给它赋值为0.
当你每点一个多选框选中的话那就加1不选中的话那就-1.然后再判断值。是不是大于2就是了啊。
microsoftAnson 2010-02-08
  • 打赏
  • 举报
回复
我想 把这些条件 全部放在数组里面 这样只需要判断,但是

string[] abc = new string[20];
abc[0] = 1; --出问题了 把1赋给数组呢,这个有点头大

abc[1] = 2;
....
....
System.Web.UI.WebControls.CheckBox ck = (System.Web.UI.WebControls.CheckBox)item.FindControl("CheckBox1");
for (int i = 0; i < Convert.ToInt32(ck.Checked); i++)
{
if (Convert.ToInt32( ck.Checked) > abc.Length)
{
Response.Write("请正确选择!");
}

if (ck.Checked && n <= aa)
{
vs.insert(Convert.ToInt32(ck.Text), userid);
n++;
}

}




丰云 2010-02-08
  • 打赏
  • 举报
回复
...又改 错咯。。。
if(document.getElementsByName("chkDel")[i].checked == true){
改为
if(document.getElementsByName("chkxxx")[i].checked == true){
丰云 2010-02-08
  • 打赏
  • 举报
回复
js做
在CheckBox里面添加onclick事件
<input type="checkbox" name="chkxxx" value="" onclick="chkClick();"/>
function chkClick(){
var chkCount = document.getElementsByName("chkxxx").length;
for (i = 0,j = 0; i < chkCount ; i++) {
if(document.getElementsByName("chkDel")[i].checked == true){
j++;
}
if(j > 3){
......
}
}
}
jack15850798154 2010-02-08
  • 打赏
  • 举报
回复

添加一个全局变量; public static int ij= 0;
protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
ij=ij+1;
Response.Write(ij.ToString());
Response.Write("<script>alert('"+this.CheckBox1.Text+"')</script>");
}
protected void CheckBox2_CheckedChanged(object sender, EventArgs e)
{
ij= ij+1;
Response.Write(ij.ToString());


}
protected void CheckBox3_CheckedChanged(object sender, EventArgs e)
{
ij=ij+1;
Response.Write(ij.ToString());
}
就可以了,你判断一下。。我在本机测试成功。。
Dream_Hunter_ 2010-02-08
  • 打赏
  • 举报
回复
仅仅是对话框提示的话,我觉得还是就用js的好。
microsoftAnson 2010-02-08
  • 打赏
  • 举报
回复
如果 单单是只让选择2项还好说 但是 那个条件是动态的...所以 这个确实不好判断,JS倒是可以实现..但是不知道怎么来写
kele1006 2010-02-08
  • 打赏
  • 举报
回复
查看页面html源码,你可以有所收获
在一个固定的容器内寻找checkbox这样属性的,当被勾选的超过2个,就alert
使用JS来计算应该还不算太复杂的!
Justin-Liu 2010-02-08
  • 打赏
  • 举报
回复
你也可以在提交表单的时候一起做判断
jack15850798154 2010-02-08
  • 打赏
  • 举报
回复
提个思路,个人认为你可以把选中的checkBox都放入一个数组中然后判断当数组中的数量大于2的时候就提示。。。不知道对不。如果错误还请包涵。
mengjun5200 2010-02-08
  • 打赏
  • 举报
回复
不知道能不能用jquery写

conut=0;
$("input[type=checkbox]").click(function(){
count++;
if(count>1)
{
alert("只可以选择2个checkbox");
}
})
丰云 2010-02-08
  • 打赏
  • 举报
回复
修改下:

提示后当然能提交,
灵活点嘛,不然怎么干这行撒
<input type="submit" name="btnxxx" value="提交" />

function xxxx(){
......
alert("asdfghjkl");
......
$("#btnxxx").click();
}
丰云 2010-02-08
  • 打赏
  • 举报
回复
引用 24 楼 microsoftanson 的回复:
....当你选择第三个的时候 就必须提示  还怎么提交...

提示后当然能提交,
灵活点嘛,不然怎么干这行撒
<input type="button" name="btnxxx" value="提交" />

function xxxx(){
......
alert("asdfghjkl");
......
$("#btnxxx").click();
}
microsoftAnson 2010-02-08
  • 打赏
  • 举报
回复
....当你选择第三个的时候 就必须提示 还怎么提交...
snihcel 2010-02-08
  • 打赏
  • 举报
回复
提交之后再判也可以啊
microsoftAnson 2010-02-08
  • 打赏
  • 举报
回复
动态的CheckBox 就是说 一个投票选项跟着一个CheckBox 但是投票项是动态添加的 所以呢 CheckBox 也肯定是动态的咯,那么我在自定义添加投票的页面有个DropDownList中 我选择只让你选择2项的话,你的CheckBox 就只能选择2项当你选择3项的时候 就提示你不能多选。。。。不知道你明白了没?
丰云 2010-02-08
  • 打赏
  • 举报
回复
用js做

html:
<!--用来输入你需要进行控制的个数-->
<input type="textbox" id="youCount" value=""/>
<!--在每个CheckBox里面添加onclick事件-->
<input type="checkbox" id="chk1" name="chkxxx" value="" onclick="chkClick();"/>
<input type="checkbox" id="chk2" name="chkxxx" value="" onclick="chkClick();"/>
......<!--这里有多个checkbox-->

js:
function chkClick(){
var chkCount = document.getElementsByName("chkxxx").length;
var intCount = parseInt(document.getElementById("youCount").value);
for (i = 0,j = 0; i < chkCount ; i++) {
if(document.getElementsByName("chkxxx")[i].checked == true){
j++;
}
if(j > intCount ){
......
}
}
}
加载更多回复(9)

62,041

社区成员

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

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

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

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