表单验证问题?

qiuyinggxnn 2003-08-20 11:32:29
<html>
<head>
function check_login(table_name,user_name,pwd)
{
var getValue = document.table_name.user_name.value.toLowerCase();
var getPwd = document.table_name.pwd.value;
var gatherChar = "abcdefghijklmnopqrstuvwxyz_0123456789";

if(document.table_name.user_name.value =="")
{
alert("用户名不能为空,请输入用户名!");
document.table_name.user_name.focus();
return false;
}
if(document.table_name.pwd.value =="")
{
alert("密码不能为空,请输入密码!");
document.table_name.pwd.focus();
return false;
}
if ((getValue.length<3)||(getValue.length>12))
{
alert ("用户名应该在3-12个字符之内!");
return false;
}
if ((getPwd.length<6)||(getPwd.length>20))
{
alert ("密码应该在6-20个字符之内!");
return false;
}
for(i=0;i<getValue.length;i++){
if (-1==(gatherChar.indexOf(getValue.charAt(i))))
{
alert ("用户名只能是英文、数字以及下划线组成!");
return false;
}
}

}
</head>
<body>
<table width="56%" border="0" cellpadding="0" cellspacing="0" bordercolorlight="#FFFFFF">
<form method="post" name="frmLogin" action="checklogin.asp" onsubmit="return check_login(frmLogin,UserName,PassWord)">
<tr>
<td>用户名:</td>
<td> <input type="text" name="UserName"> </td>
</tr>
<tr>
<td>密码:</td>
<td> <input type="text" name="PassWord"> </td>
</tr>
<tr>
<td> </td>
<td><input type="radio" name="UserType" value="person">
个人用户
<input type="radio" name="UserType" value="enterprise">
企业用户</td>
</tr>
<tr>
<td> </td>
<td> <input type="submit" name="Submit" value="登录"> <input type="button" name="Submit2" value="注册">
</td>
</tr>

</form>
</table>
</body>
</html>
为什么提交表单后,函数不做验证呢?是否是这里有问题onsubmit="return check_login(frmLogin,UserName,PassWord)"。

...全文
103 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
stefli 2003-08-20
  • 打赏
  • 举报
回复
你返回的变量太多了。其实就用:onsubmit="return check_login()"或者onsubmit="return check_login(this)"

然后,在验证程序中,可以用全路径:
document.frmLogin.UserName.value
document.frmLogin.PassWord.value
最后一个一个的判断,就不会出现什么问题。
都符合要求后,就return true
meizz 2003-08-20
  • 打赏
  • 举报
回复
Sorry! 最后那个 return false 改成 return true
meizz 2003-08-20
  • 打赏
  • 举报
回复
再改了一下:

<html>
<head>
<script>
function check_login()
{
with(document.frmLogin)
{
var getValue = UserName.value.toLowerCase();
var getPwd = PassWord.value;

if(UserName.value =="")
{
alert("用户名不能为空,请输入用户名!");
UserName.focus();
return false;
}
if(PassWord.value =="")
{
alert("密码不能为空,请输入密码!");
PassWord.focus();
return false;
}
if ((getValue.length<3)||(getValue.length>12))
{
alert ("用户名应该在3-12个字符之内!");
return false;
}
if ((getPwd.length<6)||(getPwd.length>20))
{
alert ("密码应该在6-20个字符之内!");
return false;
}
if(/[^\w]/g.test(PassWord.value))
{
alert ("用户名只能是英文、数字以及下划线组成!");
return false;
}
}
return false
}
</script>
</head>
<body>
<table width="56%" border="0" cellpadding="0" cellspacing="0" bordercolorlight="#FFFFFF">
<form method="post" name="frmLogin" action="checklogin.asp" onsubmit="return check_login()">
<tr>
<td>用户名:</td>
<td> <input type="text" name="UserName"> </td>
</tr>
<tr>
<td>密码:</td>
<td> <input type="text" name="PassWord"> </td>
</tr>
<tr>
<td> </td>
<td><input type="radio" name="UserType" value="person">
个人用户
<input type="radio" name="UserType" value="enterprise">
企业用户</td>
</tr>
<tr>
<td> </td>
<td> <input type="submit" name="Submit" value="登录"> <input type="button" name="Submit2" value="注册">
</td>
</tr>

</form>
</table>
</body>
</html>
meizz 2003-08-20
  • 打赏
  • 举报
回复
if(document.table_name.user_name.value =="")
==>
if(eval("document."+ table_name +"."+ user_name).value =="")

onsubmit="return check_login(frmLogin,UserName,PassWord)
==>
onsubmit="return check_login('frmLogin','UserName','PassWord')"

JS代码块两端加上<script language=javascript> .... </script>
qiuyinggxnn 2003-08-20
  • 打赏
  • 举报
回复
焦急的等待
qiuyinggxnn 2003-08-20
  • 打赏
  • 举报
回复
没有人帮忙吗?

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧