| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 644 人关注过本帖
标题:[求助]注册验证
只看楼主 加入收藏
mmao
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-12-20
收藏
 问题点数:0 回复次数:2 
[求助]注册验证

大家好,我在做一个注册页面的时候,发现验证函数不起做用,电击提交后直接到下一个页面,请问这是什么原因呢?
原文件如下:
<script language=vbscript>
<!--
sub tijiao_onclick()
if len(login.userid.value)<3 then
alert "用户名太短,请选择一个长度大于3的名字"
login.userid.select
exit sub
end if
if instr(trim(login.userrid.value)," ")>1 then
msgbox "用户名申请请不要加空格"
login.userid.select
exit sub
end if
if len(login.userpw.value)<4 then
alert "密码太短请选择一个长度大于4的密码"
login.userid.select
end if
if login.userpw.value<>login.verifypw.value then
alert "确认密码和密码不同,请确认"
login.userpw.value=""
login.verifypw.value=""
login.userpw.select
exit sub
end if
if login.name.value="" then
alert "为了更好的为您服务请输入您的名字"
login.name.select
exit sub
end if
if login.idnumber.value="" or not isnumeric(login.idnumber.value) or len(login.idnumber.value)<>15 and len(login.idnumber.value)<>18 then
alert "请正确输入您的身份证号码"
login.idnumber.select
exit sub
end if
if login.age.value="" or not isnumer(login.age.value) then
alert "请输入您的年龄"
login.age.select
exit sub
else
if cint(login.age.value)<12 then
alert "年龄输入范围错误"
login.age.select
exit sub
end if
if login.address.value="" then
alert "请输入您的详细联系地址"
login.address.select
exit sub
end if
if len(login.zipcode.value)<>6 or not isnumeric(login.zipcode.value) then
alert "邮政编码输入有误,请更正"
login.zipcode.value.select
exit sub
end if
if not login.phone.value="" then
if isnumeric(login.phone.value) then
if len(login.phone.value)<7 or left(login.phone.value,1)="-" or left(login.phone.value,1)="+" then
alert "电话号码输入有误"
login.phone.select
exit sub
end if
else
pos=instr(login.phone.value,"-")
len_phone=len(login.phone.value)
if pos>1 and pos<len_phone then
lef=left(login.phone.value,pos-1)
rig=right(login.phone.value,len_phone-pos)
if not isnumeric(lef) or not isnumeric(rig) or len(rig)<5 then
alert "电话号码号码输入有误"
login.phone.select
exit sub
end if
else
alert "电话号码输入有误"
login.phone.select

end if
end if
end if

if login.email.value="" then
alert "为了与您联系方便,请输入E-mail地址"
login.email.select
exit sub
else
if not right(login.email.value,4)".com" and not right(login.email.value,4)=".net" and not
right(login.email.value,3)=".cn" or instr(login.email.value,"@.") then
alert "请正确输入您的email"
login.email.select
exit sub
end if
login.submit
end sub
-->
</script>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>注册新会</title>
</head>

<body>
<form method="post"action="custadd.asp" name="login" >
<p>会 员 名:
<input name="userid" type="text" maxlength="8">
*用户名长度为3-8位
</p>
<p>密 码 :
<input name="userpw" type="password" maxlength="8">
*密码长度为4-8位</p>
<p>密码确认:
<input name="verifypw" type="password" id="verifypw" maxlength="8">
*</p>
<p>您的姓名:
<input name="name" type="text" id="name" maxlength="8">
*</p>
<p>身份证号:
<input name="idnumber" type="text" maxlength="18">
*</p>
<p>性 别:
<input type="radio" name="sex" value="男"checked>男
<input type="radio" name="sex" value="女">女</p>
<p> 您的年龄:
<input name="age" type="text" size="2" maxlength="2">
*</p>
<p>详细地址:
<input name="address" type="text"size="20" maxlength="20">
*</p>
<p>邮政编码:
<input name="zipcode" type="text" size="20" maxlength="6">
*</p>
<p>电话号码:
<input name="phone" type="text" size="20">
</p>
<p>电子邮箱:
<input name="email" type="text" size="20" maxlength="30">
*</p>
<p> <div align="center"> <input name="tijiao" type="submit" value="提交">
<input name="zhongzhi" type="reset" id="zhongzhi2" value="重置"></div>
</p>

</form>
</body>
</html>

搜索更多相关主题的帖子: 验证 注册 
2006-12-21 11:35
在编程中沦落
Rank: 2
等 级:新手上路
威 望:4
帖 子:411
专家分:0
注 册:2005-12-25
收藏
得分:0 
首先检查一下你FORM有没有和tijiao_onclick()关联起来…………

2006-12-21 14:54
做人很低调
Rank: 5Rank: 5
等 级:贵宾
威 望:18
帖 子:1268
专家分:0
注 册:2006-8-2
收藏
得分:0 
楼主你这么用VBS做表单的验证原理上是没有问题的
但实际上你写的代码有很多的问题

1.你用的是SUB做验证 提交的按钮 就不能是Submit了 要改为Botton 要不然就会出现不管通没通过验证都提交表单的情况,也就失去了表单验证的意义,要用Botton的onclick事件验证 当不合要求就exit sub 所有的验证都通过就执行你在SUB里写的login.submit提交了

2.你写的验证代码错误N多...
if instr(trim(login.userrid.value)," ")>1 then
msgbox "用户名申请请不要加空格"
我在你写的表单中没有找到userrid这个元素 应该是你多写了一个r 还有就是既然你别的提示框都用了alert这里就不要再用msgbox 最好保持一致

3.if len(login.userpw.value)<4 then
alert "密码太短请选择一个长度大于4的密码"
login.userid.select
?????????
end if
这里你写的密码长度的验证也少写了一个exit sub,还有给出这个提交后你返回的焦点是用户名的文本框 正常要把焦点返回给输入密码的文本框

4.if login.age.value="" or not isnumer(login.age.value) then
alert "请输入您的年龄"
login.age.select
exit sub
else
if
cint(login.age.value)<12 then
alert "年龄输入范围错误"
login.age.select
exit sub
end if
验证数字的VB函数是IsNumeric,还有 你要不就把if去掉 要不就写成elseif 象你现在这样写语句就没有结束

5.if len(login.zipcode.value)<>6 or not isnumeric(login.zipcode.value) then
alert "邮政编码输入有误,请更正"
login.zipcode.value.select
exit sub
end if
这里的邮政编码验证 你多写了一个value

6.你写的电话的验证我实在是没看懂你写的什么意思 就没仔细看略过.......

7.你写的Email验证前半段没有问题,
后半段我又晕了 else if 不能象你那么写 那样的话语句未结束 和第4条犯一个错误
还有就是后半段的判断
if not right(login.email.value,4)".com" and not right(login.email.value,4)=".net" and not right(login.email.value,3)=".cn" or instr(login.email.value,"@.") then
这and和or 让你用的.....我就不说什么了
看不动你的意思 在VB里 and 的优先级大于or的优先级
你所写的我也真的无语了

本人一般在做表单验证时,习惯用JS,不太常使用VBS
看了你写的代码我用了30分钟
我想我自己从新写一边也用不了 30分钟

最后的建议:我只是找到了我发现的错误,有可能还有我忽略的,请楼主你自己再看看检查一下
还有对于程序员来说 自己要对自己所写的代码负责,不要自己写完就不管了
有错误就找别人帮解决.最少自己也要认真的检查一边
代码要写的工整干净,尤其是在写嵌套判断,嵌套循环的时候 注意代码的缩进 这样有错误也方便查找
我说的这些话没有别的意思
楼主你能听进去就好 听不进去当我说的是乱码

其实我很低调,只是你不知道...
2006-12-21 17:36
快速回复:[求助]注册验证
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020275 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved