会js的进来看一下

iey000 2010-07-06 10:46:38
页面上有8个checkbox,
我想做的效果是,前面6个和后面2个互斥,也就是说,当点了前面6个中的任意一个或多个,后面2个就Enabled =false
后面2个点了任意的一个或者多个,前面6个也一样
以前我是后台写了check事件,绑定到控件上,这样8个控件点一个都会刷新一次,感觉用户体验就不好

我现在希望有份js的代码前台完成
8个checkbox的名字可以简称为:chk1,chk2....chk8
...全文
67 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
keyouea 2010-07-06
  • 打赏
  • 举报
回复
发现一个硬伤:
如果没有其他输入辅佐,仅8个checkBox,
如:点前面6个中的一个,后面两个被设为不可用了,这样后面两个就再也没办法触发事件了,前面六个再也没办法被设为不可用了.
反之亦然.
iey000 2010-07-06
  • 打赏
  • 举报
回复
恩 谢谢1楼 我成功的完成了
无爱大叔 2010-07-06
  • 打赏
  • 举报
回复
<script Language="JavaScript">
function check(oCheck)
{
var arr=new Array();
for(var i=1;i<=8;i++)
{
if(oCheck.id.replace('chk','')<7&&oCheck.checked&&i>6)
{
document.getElementById("chk"+i).checked=false;
document.getElementById("chk"+i).disabled=true;
}
if(oCheck.id.replace('chk','')>6&&oCheck.checked&&i<7)
{
document.getElementById("chk"+i).checked=false;
document.getElementById("chk"+i).disabled=true;
}
if(document.getElementById("chk"+i).checked)
{
arr.push(i);
}
}
if(arr.length==0)
{
reload();
}
}
function reload()
{
for(var i=1;i<=8;i++)
{
document.getElementById("chk"+i).checked=false;
document.getElementById("chk"+i).disabled=false;
}
}
</script>
<form name="forms" method="post">
<input type="checkbox" id="chk1" onclick="check(this)"/>
<input type="checkbox" id="chk2" onclick="check(this)"/>
<input type="checkbox" id="chk3" onclick="check(this)"/>
<input type="checkbox" id="chk4" onclick="check(this)"/>
<input type="checkbox" id="chk5" onclick="check(this)"/>
<input type="checkbox" id="chk6" onclick="check(this)"/>
<input type="checkbox" id="chk7" onclick="check(this)"/>
<input type="checkbox" id="chk8" onclick="check(this)"/>
<input type="button" value="reset" onclick="reload();" />
</form>
ivws_19 2010-07-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 iey000 的回复:]

我的控件是asp.net的
<asp:checkbox id="chk1" ruant="server">
[/Quote]那也可以
vichao 2010-07-06
  • 打赏
  • 举报
回复
换成input 再 设置 runat=“server” 用 javascript
iey000 2010-07-06
  • 打赏
  • 举报
回复
我的控件是asp.net的
<asp:checkbox id="chk1" ruant="server">
ivws_19 2010-07-06
  • 打赏
  • 举报
回复
function check(id,flag)
{
if(flag&&(id=='chk7'||id=='chk8' ))
{
document.getElementById('chk1').disabled=true;
//chk2,...chk6 依次类推
}
else if(flag && (id!='chk7'&&id!='chk8'))
{
document.getElementById('chk7').disabled=true;
document.getElementById('chk8').disabled=true;
}
}

<input type='checkbox' id="chk1" onclick="check(this.id,this.checked)" />
..
<input type='checkbox' id="chk8" onclick="check(this.id,this.checked)" />

62,046

社区成员

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

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

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

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