黑马程序员技术交流社区

标题: Html和JavaScript中,单选框标签中的值的获取问题 [打印本页]

作者: 曹宇    时间: 2013-6-5 22:27
标题: Html和JavaScript中,单选框标签中的值的获取问题
本帖最后由 曹宇 于 2013-6-6 14:10 编辑

如有如下Script代码:
  1. <script language="javascript" type="text/javascript">
  2. function check()
  3. {
  4. var sex=document.getElementsByName("sex");
  5.   alert(sex[0].value);
  6.   alert(sex[1].value);
  7.   
  8.   /*
  9.   alert(sex[0].nodeValue);
  10.   alert(sex[1].nodeValue);
  11.   */
  12. }
  13. </script>
复制代码
Html代码如下
  1. <body>

  2.   <form action="" onsubmit="check();" method="post">

  3.     <input type="radio" name="sex" value="nan" />男 <input type="radio" name="sex" value="nv" />女

  4.   </form>
  5. </body>

复制代码
作出来的网页  无论单选框选没选 输出永远是  nan   和  nv

而我用/*  */注释掉的 语句执行的时候,无论单选框选没选,输出永远是 null.

两种方式 单选框点与不点没有任何区别。
我就是想要获取用户选择的值,或者判断用户是否没有选择性别选项。

可是这获取的值让我没法做判断。。


求大神。

多谢了!!!



作者: 穆爱明    时间: 2013-6-6 09:27
本帖最后由 穆爱明 于 2013-6-6 09:37 编辑
  1. <p> </p><p><script type="text/javascript">
  2.          var chk = 0;
  3.             function check(){
  4.                 var sex = document.getElementsByName("sex");
  5.                 for(var i=0;i<sex.length;i++){
  6.                     if(sex[i].checked){//利用循环判断用户是否选中
  7.                         chk++;//如果选中则chk加1
  8.                         alert(sex[i].value);
  9.                        return true;
  10.                     }
  11.                 }
  12.                 if(chk==0){//判断chk 如果chk的值没有变化,说明用户没有选中任何选项
  13.                 alert("请选择性别 ");//提示用户选择性别
  14.                 return false;
  15.                 }
  16.             }
  17.          
  18. </script></p>
复制代码
Html代码如下:
  1. <p><body>

  2.                 <form action="" method="post" onsubmit="return check()">

  3.                         <input type="radio" name="sex" value="nan" />
  4.                         男
  5.                         <input type="radio" name="sex" value="nv" />
  6.                         女
  7.                         <input type="submit" value="提交" />
  8.                 </form>
  9.         </body></p>
复制代码

作者: 穆爱明    时间: 2013-6-6 09:40
你的输出结果老是nan 和nv 是因为你没有加判断,获取完值就直接输出了。和选没选中没有关系,得通过sex[i].checked判断一下。

作者: 曹宇    时间: 2013-6-6 14:09
穆爱明 发表于 2013-6-6 09:40
你的输出结果老是nan 和nv 是因为你没有加判断,获取完值就直接输出了。和选没选中没有关系,得通过sex.che ...

确实是这样,非常感谢你!!!
作者: Hyo_Ri    时间: 2013-6-6 15:42
通过sex[i].checked判断一下吧,直接输出的肯定是两个值




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2