怎样判断多选按钮是否已被选中?

ddalone 2002-11-20 11:33:59
问题是这样的:
我在做一个调查,里面有一些checkbox
这些checkbox是用程序读出来的,而且每一个checkbox有一个name
并且这个checkbox是以一个字符窜加一个数字的ID组成的

一个调查问题下面可能很好多个checkbox
而每一个checkbox又有不同的name
请问我怎么判断是否参与了这个问题(就是是否这个问题下的checkbox都为空或者已经有checkbox被选中了)

如下
<input type="checkbox" name="checkbox<bean:write property="InquiryResult/inquiryResultID"/>" value="<bean:write property="InquiryResult/inquiryResultID"/>">
...全文
845 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinfanzi 2002-11-20
  • 打赏
  • 举报
回复
<script language="javascript">
<!--
function check()
{
var len = document.myForm.elements.length;
var count = 0;
for (var i = 0; i < len; i++)
{
if (document.myForm.elements[i].type = "checkbox")
{
if (document.myForm.elements[i].checked)
{
count++;
}
}
}
if (count == 0)
{
alert("未选中任何checkbox框");
return;
}
else
{
alert("有checkbox框被选中");
return;
}
}
-->
</script>
无爱大叔 2002-11-20
  • 打赏
  • 举报
回复
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script language="javascript">
function sall()
{
var e=document.all.form1.elements;
for(i=0;i<e.length;i++){
if(e[i].checked){
e[i].checked=false;
document.all.qs.innerHTML="[全选]"
}else{
e[i].checked=true;
document.all.qs.innerHTML="[清空]";
}
}
}
</script>
</HEAD>

<BODY>
<FORM METHOD=POST ACTION="" name=form1>
<INPUT TYPE="checkbox" NAME="a">
<INPUT TYPE="checkbox" NAME="b">
<INPUT TYPE="checkbox" NAME="c">
<INPUT TYPE="checkbox" NAME="d">
<br>
<a onclick="sall();" href="#" style="text-decoration:none" onfocus="this.blur();"><span id="qs">[全选]</span></a>
</FORM>
</BODY>
</HTML>
colee 2002-11-20
  • 打赏
  • 举报
回复
同意楼上兄弟说法
freefalcon 2002-11-20
  • 打赏
  • 举报
回复
1.每个问题都是必答的吗,如果是,那么为每组radio设一个默认选项,例如不妨设每组第一个radio为默认选中状态
<input type=radio name=radio1 value=1 checked>
<input type=radio name=radio1 value=1>
这样会保证每组中总有一个被选中,所以不用检查
如果不是,则可以用如下的循环判断
<script>
function checkRadio(radioname){
var checked=false;
for(i=0;i<radioname.length;i++)
if(radioname[i].checked){
checked=true;
return checked;
}
return checked;
}
checkRadio(radio1);
</script>
2.为什么checkbox不像radio那样每组取一个相同的name呢?这样客户端和服务器都比较好处理,客户端的检查与radio类似,服务器端获得的数据是一个数组
ddalone 2002-11-20
  • 打赏
  • 举报
回复
谢谢楼上两位。问题可能还没描述清楚,再看

测试二
1 测试二问题1 (单选)

(1) 问题1 答案1 (单选框)
(2) 问题1 答案2 (单选框)
(3) 问题1 答案3 (单选框)

2 测试二问题2 (多选)

(1) 问题2答案1 (多选框)
(2) 问题2答案2 (多选框)

3 测试二问题3 (单选)

(1) 问题3答案1 (单选框)
(2) 问题3答案2 (单选框)

上面是一个调查,一个调查主题下面包含N个调查问题,每个调查问题下面又包含N个答案。问题是单选或者多选也是不定(是从数据库中读出)

单选框的命名方法:用radio+问题ID命名,即同一个单选问题下的几个答案的name都相同,只是用value来区分
多选框的命名方法:用checkbox+答案ID命名,即同一个多选问题下的每个答案的name都‘不’相同


现在要做的判断如下:

判断类型是单选的问题是否有答案被选中;
判断类型是多选的问题是否至少有一个答案被选中;

存在的问题:

1、对于单选类型的,可以来判断一个name是否为空,但因为是循环,怎么把一个主题下的几个单选类型的问题用一个javascript来表示。如果用几个来表示,怎么在提交的时候让check去调用这几个不同的javascript。
2、对于多选类型的,由于每个checkbox的name都不同,怎么判断该问题下至少有一个checkbox被选中了。如果存在多个多选问题的话又怎么处理。
3、由于问题和答案都是用循环读出来的, 因此我写的时候javascript的代码也做了几次循环,这样调用的时候发现无效。有没有一种方法,可以让<a href="javascript:check..>这一个去调用几个javascript。


87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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