免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4209 | 回复: 14
打印 上一主题 下一主题

[表单] 关于checkbox [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-07 16:32 |只看该作者 |倒序浏览
<tr>
<td><input type="checkbox" name="answer1[]" value="A.电器"> A.电器</td>                        
<td><input type="checkbox" name="answer1[]" value="B.摩托"> B.摩托</td>                        
<td><input type="checkbox" name="answer1[]" value="C.百货"> C.百货</td>                        
<td><input type="checkbox" name="answer1[]" value="D.服装"> D.服装</td>                  
</tr>      

请问在提交过程中如何在javascript 中判断 checkbox 被选中的项数呢?

这段代码有何错误呢:

var checked_num = 0;
var len=document.all["answer1[]"].length
for ( i = 0; i < len; i++ )       
{
         if (document.myform.answer1.checked==true )       
                 {
                         checked_num++;
                 }
}
if (checked_num==0)
        {
                alert('未选择或选择超过4项!');
                document.myform.answer1[0].focus();
                return false
        };

[ 本帖最后由 HonestQiao 于 2005-12-13 14:32 编辑 ]

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
2 [报告]
发表于 2005-12-07 17:50 |只看该作者
answer1是一个什么东东啊?

论坛徽章:
0
3 [报告]
发表于 2005-12-08 00:23 |只看该作者
answer1[]  是 一个checkbox数组  如何判断checkbox 被选中几个?

[ 本帖最后由 xhy701 于 2005-12-8 00:32 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2005-12-08 01:43 |只看该作者
javascript  中定义如下代码:
var pig = 0;
for (var i=0;i<10;i++)
        {
        pig = (myform.answer1[i].checked==true?pig+1:pig);
        }
     alert("您选了["+pig+"]个");
      if(pig==0){
         alert("至少选1项!");
         return false
         }
         if(pig>5){
         alert("至多只能选5项!");
         return false
         }

如果把一组checkbox  名字改为:answer1  就可以正确运行,但这样又取不到各个checkbox 的数值。 但name改为数组:answer1[]   该代码就不起作用,,请教各位采用数组时,js 要如何才能起作用呢?谢谢!

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
5 [报告]
发表于 2005-12-08 02:00 |只看该作者
你的代码本身就非常不规范,前后调用不一致,看我的:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <HTML>
  3. <HEAD>
  4. <TITLE> New Document </TITLE>
  5. <META NAME="Generator" CONTENT="EditPlus">
  6. <META NAME="Author" CONTENT="">
  7. <META NAME="Keywords" CONTENT="">
  8. <META NAME="Description" CONTENT="">
  9. </HEAD>

  10. <BODY>
  11. </table>
  12. <form name=myform id=myform>
  13. <tr>
  14. <td><input type="checkbox" name="answer1[]" value="A.电器" onclick="check();"> A.电器</td>                        
  15. <td><input type="checkbox" name="answer1[]" value="B.摩托" onclick="check();"> B.摩托</td>                        
  16. <td><input type="checkbox" name="answer1[]" value="C.百货" onclick="check();"> C.百货</td>                        
  17. <td><input type="checkbox" name="answer1[]" value="D.服装" onclick="check();"> D.服装</td>                  
  18. </tr>  
  19. </form>
  20. </table>
  21. <script language=javascript>
  22. function check()
  23. {
  24.         var checked_num = 0;
  25.         var len=document.all.myform["answer1[]"].length
  26.         for ( i = 0; i < len; i++ )      
  27.         {
  28.                 if (document.all.myform["answer1[]"][i].checked==true )      
  29.                  {
  30.                          checked_num++;
  31.                  }
  32.         }
  33.         if (checked_num==0)
  34.                 {
  35.                         alert('未选择或选择超过4项!');
  36.                         document.all.myform["answer1[]"][0].focus();
  37.                         return false;
  38.                 }
  39.          alert(checked_num);
  40.          return true;
  41. }
  42. </script>
  43. </BODY>
  44. </HTML>
复制代码

论坛徽章:
0
6 [报告]
发表于 2005-12-08 08:47 |只看该作者
<td><input type="checkbox" name="answer1[]" value="A.电器" onclick="check();"> A.电器</td>                        
<td><input type="checkbox" name="answer1[]" value="B.摩托" onclick="check();"> B.摩托</td>                        
<td><input type="checkbox" name="answer1[]" value="C.百货" onclick="check();"> C.百货</td>                        
<td><input type="checkbox" name="answer1[]" value="D.服装" onclick="check();"> D.服装</td>


不用这么写
可以直接写
<td><input type="checkbox" name="answer" value="A.电器" onclick="check();"> A.电器</td>                        
<td><input type="checkbox" name="answer" value="B.摩托" onclick="check();"> B.摩托</td>                        
<td><input type="checkbox" name="answer" value="C.百货" onclick="check();"> C.百货</td>                        
<td><input type="checkbox" name="answer" value="D.服装" onclick="check();"> D.服装</td>

论坛徽章:
0
7 [报告]
发表于 2005-12-08 09:56 |只看该作者
var len=document.all["answer1[]"].length 这里有错误
字面上应该修改为
var len = document.answer1[].length

不过answer1[]的命名本来就不够规范 .。[]是数组的引用操作标记,你可以改变这个名称试试。

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
8 [报告]
发表于 2005-12-08 10:17 |只看该作者
原帖由 老茂 于 2005-12-8 09:56 发表
var len=document.all["answer1[]"].length 这里有错误
字面上应该修改为
var len = document.answer1[].length

不过answer1[]的命名本来就不够规范 .。[]是数组的引用操作标记,你可以改变这个名 ...



完全没有错误,因为本来就是可以通过其实际的name在javascript来操作的,就算是类似数组的名称.

论坛徽章:
0
9 [报告]
发表于 2005-12-08 11:35 |只看该作者
十分感谢版主!程序已通过!
谢谢版主的热心!

论坛徽章:
0
10 [报告]
发表于 2005-12-08 13:24 |只看该作者
<input type="checkbox" name="answer1[]" value="A.电器" onclick="check();"> A.电器
我指的是input的name不够规范 .
你的错误就源于此处,命名是answer1[],但引用的地方是answer1

同名object是可以按数组方式的操作,如上你的命名可以使用answer1[][1] 这样的操作。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP