A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 唐僧踏歌 中级黑马   /  2014-4-4 14:32  /  872 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 唐僧踏歌 于 2014-4-6 11:30 编辑

1.<tr> <td>性别:    <input type="radio" name="sex" value="male" /> 男
                              <input type="radio" name="sex" value="female" /> 女
</td> </tr>
在JS语句块,要怎样验证注册用户是否已经选中一个了?

2.<tr><td>用户名:  <input name="User" type="text" size="21"></td></tr>  
     像填这个用户名的时候,怎样告诉注册用户,这个框的填写规则?如:3-16位的字母或数字



5 个回复

倒序浏览
本帖最后由 残梦共飞雪 于 2014-4-4 14:40 编辑

第一个:
document.getElementsByName('sex')获取这个名称的所有元素作为数组。
分拆数组判断isChecked。即是否被选中
因为你的元素木有ID,就用ByName了。但是getElementsByName好像在某老版本浏览器不支持。忘了具体哪个了。
ByClass在IE8不支持。

第二个:
首先限定最大长度,元素里设置maxlength = "16"
然后js里获取值,运用正则表达式来判断有数字字母以外的字符。然后再根据.length()判断长度。

评分

参与人数 1技术分 +1 收起 理由
itpower + 1

查看全部评分

回复 使用道具 举报
  1. <html>
  2.         <head>
  3.             <script type="text/javascript">
  4.                 function checkReg()
  5.                 {
  6.                         //验证用户名
  7.                         var user = document.getElementById("userid").value;
  8.                         //正则表达式
  9.                         var userReg = new RegExp(/^[a-zA-Z0-9]{3,16}$/);
  10.                         if(!user.match(userReg))
  11.                         {
  12.                                 document.write("用户名:3-16位的字母或数字"+"<br/>");
  13.                         }

  14.                         //验证性别
  15.                         var sex1 = document.getElementById("sex1");
  16.                         var sex2 = document.getElementById("sex2");
  17.                         //如果没有选择性别就提示
  18.                         if(sex1.checked==false && sex2.checked==false)
  19.                         {
  20.                                 document.write("请选择性别:");
  21.                         }
  22.                 }

  23.         </script>
  24.         </head>

  25.         <body>
  26.                 <form>
  27.                         <table border="1" bordercolor="#000000" width="70%" cellpadding="10" cellspacing="0">
  28.                                     <tr>
  29.                                         <th colspan="2">注册表单</th>
  30.                                         </tr>
  31.         
  32.                                     <tr>
  33.                                         <td>用户名:</td>
  34.                                             <td><input type="text" name="user" id="userid" /></td>
  35.                                 </tr>

  36.                                 <tr>
  37.                                         <td>性别:</td>
  38.                                             <td>
  39.                                                     <input type="radio" name="sex" id="sex1" value="nan" />男
  40.                                                 <input type="radio" name="sex" id="sex2" value="nv" />女
  41.                                             </td>
  42.                                 </tr>

  43.                                 <tr>
  44.                                         <th colspan="2">
  45.                                                     <input type="button" value="验证表单" onClick="checkReg()" />
  46.                                             </th>
  47.                                 </tr>
  48.                 </form>
  49.         </body>
  50. </html>
复制代码


3-16位的字母或数字
正则表达式定义:

var userReg = new RegExp(/^[a-zA-Z0-9]{3,16}$/);


也可以这样写:

var userReg = /^[a-zA-Z0-9]{3,16}$/;
这个比较简单,不用创建对象。

验证是否选中男或是女用checked方法。



评分

参与人数 1技术分 +1 收起 理由
itpower + 1

查看全部评分

回复 使用道具 举报
楼上的回答都很详细啊,话说选择性别的这种单选按钮,建议设置一个默认选中的按钮,比如将男的那个checked属性设置为checked,然后男 女这两个radio的name属性值设成一样,就可以做到2个radio的互斥,这样也省去了还需要验证性别是否已选的过程
回复 使用道具 举报
先提问结束吧,都没时间看
回复 使用道具 举报
这些事基础测试里面的题目吧  至于单选按钮  我记得原题的要求是为必填项  我是直接设置了一个默认的
至于验证用户名  可以在JS中 写正则表达式 然后通过exec方法判断返回值 是否为null
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马