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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 史卫平 黑马帝   /  2011-8-23 00:09  /  2535 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>第9、10题</title>
<script type="text/javascript">
function submitClick(){
var regex1=/^[A-Za-z_][0-9A-Za-z_]$/;
var regex2=/^[0-9A-Za-z_]{6,16}$/;
var username= document.forms[0].username.value;
if(username==""){alert("用户名称不能为空");return false;}
var password1 = document.forms[0].password1.value;
if(password1==""){alert("用户密码不能为空");return false;}
var password2 = document.forms[0].password2.value;
if(password2==""){alert("确认密码不能为空");return false;}
if(!(regex1.test(username))){
   alert("用户名必须是字母数字或下划线, 不能以数字开头");
  return false;
}
document.forms[0].username.focus();
if(!(regex2.test(password1))){
     alert("密码必须6-16位字母数字下划线");
     return false;
}
if (password1!=password2){
    alert("两次输入密码不一致!请重新输入");
    return false;
}
var habby= document.forms[0].habby.value;
if(habby==""){alert("用户爱好不能为空");return false;}
var city= document.forms[0].city.value;
if(city==""){alert("用户城市不能为空");return false;}
var introduce= document.forms[0].introduce.value;
if(introduce==""){alert("用户介绍不能为空");return false;}
}
</script>
</head>
<body>
<form action="" method="get">
用户名<input type="text" name="username"/><br/>
密码<input type="password" name="password1"/><br/>
确认密码<input type="password" name="password2"/><br/>
<input type="radio" name="sex" value="male"/>男<br/>
<input type="radio" name="sex" value="female"/>女<br/>
<select name="city">
<option value="nj">南京</option>
<option value="bj">北京</option>
<option value="tj">天津</option>
<option value="dj">东京</option>
</select><br/>
游泳<input type="checkbox" name="habby" value="swimming"/><br/>
阅读<input type="checkbox" name="habby" value="reading"/><br/>
篮球<input type="checkbox" name="habby" value="basketball"/><br/>
跑步<input type="checkbox" name="habby" value="running"/><br/>
介绍<textarea name="introduce"  cols="20" rows="10" ></textarea><br/>
<input type="submit" name="submit" value="提交" />
</form>
</body>
</html>

首先正则表达式我还没搞懂,看了张老师视频,不过基本都是概念,接受消化还需实践
因为这是test题,我就模仿网上写了两个表达式,因该没问题,不过这个运行起来,在第一步的时候,有时候正常,有时候就有问题,除了正则表达式之外,其他的我也看不出来问题。
哪位帮忙看看

评分

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

查看全部评分

10 个回复

倒序浏览
黑马网友  发表于 2011-8-23 00:48:23
沙发
没关系,我当时验证的也没做出来,直接交了,照过。。。。正则表达式简单点的可以看看马士兵正则表达式那一讲,了解下行了,一般用到的网上均有。也不是说不让你学这个,但时间应该花在刀刃上,百度百科中说,要学好正则表达式,相当于学一门语言。。。
回复 使用道具 举报
黑马网友  发表于 2011-8-23 06:53:29
藤椅
我正准备看马士兵的,马老师的例子多
回复 使用道具 举报
黑马网友  发表于 2011-8-23 08:13:34
板凳
我猜想  由于你在表单内打上了空格,
var username= document.forms[0].username.value;
if(username==""){alert("用户名称不能为空");return false;}
这个就失效了.

你的这段javascript应该不会起作用,
你想他起作用这里要做修改
<input type="submit" name="submit" value="提交" onClick="return submitClick()"/>
也就是在原有的基础上加上onClick="return submitClick()"

还有一种写法,你每次验证完不必都 return false;
可以将button的type改成button
就可以将return false去掉;
然后在所有验证通过后手动提交表单
if(....)
{
alert('验证失败');
}
else
{
document.forms[0].submit()
}
回复 使用道具 举报
黑马网友  发表于 2011-8-23 08:38:40
报纸
这if(username==""){alert("用户名称不能为空");return false;} 是不是要写成
if(username=="" || username != null){alert("用户名称不能为空");return false;} 啊
回复 使用道具 举报
黑马网友  发表于 2011-8-23 08:59:52
地板
if(username==""){alert("用户名称不能为空");return false;}
这个代码没什么问题吗  不会有什么null的问题吧
<input type="submit" name="submit" value="提交" onClick="return submitClick()"/>
这个onClick 原来代码有的,不知道怎么发帖的时候就没了,不应该啊


sunyu:
我猜想  由于你在表单内打上了空格,
var username= document.forms[0].username.value;
if(username==""){alert("用户名称不能为空");return false;}
这个就失效了.


这个什么意思? 什么叫表单内打上了空格
回复 使用道具 举报
黑马网友  发表于 2011-8-23 09:22:46
7#
就是在文本框 输入空格符   看上去是 空白的 其实里面有个空格符
所以if(username=="")这个条件不成立
回复 使用道具 举报
黑马网友  发表于 2011-8-23 11:22:21
8#
把web开发的源码跟我发一份,谢了
[email]847805430@qq.com[/email]
方老师的
回复 使用道具 举报
黑马网友  发表于 2011-8-23 22:12:36
9#
你写个函数不调用,即使你的正则表达式多么正确,函数都不会运行,起作用就出错了!
你只要在form的提交事件调用函数
<form action="" method="get" onsubmit="return submitClick()">
就行了。:) 认真点噢!嘿嘿……
回复 使用道具 举报
黑马网友  发表于 2011-8-24 08:55:58
10#
document.forms[0].username.value.replace(/(^\s*)|(\s*$)/g,"");
这句话能把输入的数据前后的空格去掉吗
回复 使用道具 举报
黑马网友  发表于 2011-8-24 09:17:29
11#
var regex1=/^[A-Za-z_]\w*/;


去掉了\w外面的方括号  *号外面的大括号也去掉 好像可以哎

没时间试验了,端盘子去了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马