我的代码主要是个简单的表单验证:但是按"注册"按钮就让IE7卡住了,如果我把if(!isRepEx(strUserName)) 和 function isRepEx(strUserName) 注释了,
这样其他的代码能正常运行,并且不出现问题!我不知道为什么,请高手指点!
<script type="text/javascript">
function checkdata()
{ var strUserName=form1.userName.value.toLowerCase();
if(!checkUserName(strUserName)) return false;//检查用户名
}
function checkUserName(strUserName)
{
if(isWhite(strUserName))//检查空白字符
{
alert("请不要输入空白字符");
form1.userName.focus();
return false;
}
if(strUserName.length<3||strUserName.length>16)//检查用户名的长度
{
alert("请输入3-15位的用户名");
form1.userName.focus();
return false;
}
//@@@@@
if(!isRepEx(strUserName))//检查用户名是否符合正则表达式
{
alert("请不要输入的名由数字,小写字母,-组成用户名!");
form1.userName.focus();
return false;
}
}
//checkUserName()函数的子函数
function isWhite(strUserName)
{
var white=" /t/n/r";
for(var i=0;i<strUserName.length;i++)
{
for(var j=0;i<white.length;j++)
{
if(strUserName.charAt(i)==white.charAt(j))
{
return true;
}
}
}
}
////@@@@@@@@@
function isRepEx(strUserName)
{
var regexUser=/^[a-z0-9][\w-]*[a-z0-9]$/i;//i 忽略大小写
if(regexUser.test(strUserName))
{
return true;
}
}
</script>
给出 html代码:<body>
<form name="form1" method="post" action="1.html" onsubmit="return checkdata()">
<table border="1">
<tr>
<td>用户名:</td>
<td><input type="text" name="userName" /></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="text" name="pwd1" /></td>
</tr>
<tr>
<td >确定密码:</td>
<td><input type="text" name="pwd2" /></td>
</tr>
<tr>
<td colspan="2" align="center"s><input type="submit" name="submit" value="注册" /></td>
</tr>
</table>
</form>
</body>
这样其他的代码能正常运行,并且不出现问题!我不知道为什么,请高手指点!
<script type="text/javascript">
function checkdata()
{ var strUserName=form1.userName.value.toLowerCase();
if(!checkUserName(strUserName)) return false;//检查用户名
}
function checkUserName(strUserName)
{
if(isWhite(strUserName))//检查空白字符
{
alert("请不要输入空白字符");
form1.userName.focus();
return false;
}
if(strUserName.length<3||strUserName.length>16)//检查用户名的长度
{
alert("请输入3-15位的用户名");
form1.userName.focus();
return false;
}
//@@@@@
if(!isRepEx(strUserName))//检查用户名是否符合正则表达式
{
alert("请不要输入的名由数字,小写字母,-组成用户名!");
form1.userName.focus();
return false;
}
}
//checkUserName()函数的子函数
function isWhite(strUserName)
{
var white=" /t/n/r";
for(var i=0;i<strUserName.length;i++)
{
for(var j=0;i<white.length;j++)
{
if(strUserName.charAt(i)==white.charAt(j))
{
return true;
}
}
}
}
////@@@@@@@@@
function isRepEx(strUserName)
{
var regexUser=/^[a-z0-9][\w-]*[a-z0-9]$/i;//i 忽略大小写
if(regexUser.test(strUserName))
{
return true;
}
}
</script>
给出 html代码:<body>
<form name="form1" method="post" action="1.html" onsubmit="return checkdata()">
<table border="1">
<tr>
<td>用户名:</td>
<td><input type="text" name="userName" /></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="text" name="pwd1" /></td>
</tr>
<tr>
<td >确定密码:</td>
<td><input type="text" name="pwd2" /></td>
</tr>
<tr>
<td colspan="2" align="center"s><input type="submit" name="submit" value="注册" /></td>
</tr>
</table>
</form>
</body>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head><body>
<form name="form1" method="post" action="1.html" onsubmit="return checkdata()">
<table border="1">
<tr>
<td>用户名:</td>
<td><input type="text" name="userName" /></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="text" name="pwd1" /></td>
</tr>
<tr>
<td >确定密码:</td>
<td><input type="text" name="pwd2" /></td>
</tr>
<tr>
<td colspan="2" align="center"s><input type="submit" name="submit" value="注册" /></td>
</tr>
</table>
</form></body>
</html>
<script type="text/javascript">
function checkdata()
{ var strUserName=form1.userName.value.toLowerCase(); if(!checkUserName(strUserName)) return false;//检查用户名
}
function checkUserName(strUserName)
{ if(isWhite(strUserName))//检查空白字符
{
alert("请不要输入空白字符");
form1.userName.focus();
return false;
} if(strUserName.length<3||strUserName.length>16)//检查用户名的长度
{
alert("请输入3-15位的用户名");
form1.userName.focus();
return false;
}
//@@@@@ if(!isRepEx(strUserName))//检查用户名是否符合正则表达式
{
alert("请不要输入的名由数字,小写字母,-组成用户名!");
form1.userName.focus();
return false;
}
return true; //你这里应该少个return true 吧,我给你加上了。
}
//checkUserName()函数的子函数
function isWhite(strUserName)
{
var white=" /t/n/r";
for(var i=0;i<strUserName.length;i++)
{
for(var j=0;j<white.length;j++) //这里错了,你原先是:for(var j=0;i<white.length;j++) ,你把中间的j写成了i ,导致死循环
{
if(strUserName.charAt(i)==white.charAt(j))
{
return true;
}
}
}
}
////@@@@@@@@@ function isRepEx(strUserName)
{
return true; var regexUser=/^[a-z0-9][\w-]*[a-z0-9]$/i;//i 忽略大小写
if(regexUser.test(strUserName))
{
return true;
}else{
return false;
} }
</script>