为什么当我管理员密码这项 不输入的时候 也能登陆成功那我明明对他判断了 请高手仔细给看看代码
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>欢迎页面</title>
<style type="text/css">
body {
font-family: 黑体;
font-size: 20px;
font-weight: bold;
}
</style>
<script type="text/javascript">
var flag;
alert(flag);
var xmlhttp;
function checked() {
var userInput = document.getElementById("userInput").value;
var managerId=document.getElementById("managerId").value;
var managerPWD=document.getElementById("managerPWD").value;
if(userInput=="")
{
document.getElementById("show").innerHTML="<font color='red'>您没有选择登录功能</font>";
flag= false;
return flag;
}
if(userInput!=1 && userInput!=2 )
{
document.getElementById("show").innerHTML="<font color='red'>您输入的不正确</font>";
flag= false;
return flag;
}
if(managerId=="")
{
document.getElementById("managers").innerHTML="<font color='red'>管理员账号不能为空</font>";
flag= false;
return flag;
}
if(managerPWD=="")
{
document.getElementById("managersPWD").innerHTML="<font color='red'>管理员密码不能为空</font>";
flag= false;
return flag;
}
return flag;
}
</script>
</head>
<body style="background-color: #999">
<div style="padding-top: 100px;" align="center">
<form action="showManager.jsp" onsubmit="return checked()"
method="post">
<table width="1024" height="223">
<tr>
<td colspan="2" align="center">
欢迎你进入商品管理系统
</td>
</tr>
<tr>
<td colspan="2">
</td>
</tr>
<tr>
<td colspan="2" align="center">
1.商品购物系统
</td>
</tr>
<tr>
<td colspan="2" align="center">
2.商品管理系统
</td>
</tr>
<tr>
<td width="465" height="21" align="center">
如果你是客户请选择<1>
</td>
<td width="547" align="center">
如果你是管理员请选择<2>
</td>
</tr>
<tr>
<td width="465" align="right">
请输入:
<input type="text" name="userInput" id="userInput" />
</td>
<td width="547" id="show" align="left">
</td>
</tr>
<tr>
<td width="465" align="right">
请输入管理员帐号:
<input type="text" name="manager" id="managerId" />
</td>
<td width="547" id="managers" align="left">
</td>
</tr>
<tr>
<td width="465" align="right">
请输入管理员密码:
<input type="text" name="managersPWD" id="managerPWD" />
</td>
<td width="547" id="managersPWD" align="left">
</td>
</tr>
<tr align="center">
<td colspan="2">
<input type="submit" value="登录"
style="background-color: #666666; border: 1px 1px 1px 1px; font-weight: bold;"
width="100px;" />
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
[解决办法]
问题确实隐藏得比较深
你可以将这段代码copy到一个html中,然后用editplus编辑并运行,就会发现其中的错误
原因是
document.getElementById("managersPWD").innerHTML="<font color='red'>管理员密码不能为空</font>";
这一句中有错,存在了一个id和name一样的managersPWD这样的名称,因为document.getElementById既可以按照id获取也可以按照name获取,你同名了当然就报错了,既然你input中的name都没用到,就把它都去掉好了
[解决办法]
有两个ID为managersPWD的元素。。。改一下就行了。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>欢迎页面</title><style type="text/css">body {font-family: 黑体;font-size: 20px;font-weight: bold;}</style><script type="text/javascript">var flag = true;//alert(flag);var xmlhttp;function checked() { var userInput = document.getElementById("userInput").value; var managerId=document.getElementById("managerId").value; var managerPWD=document.getElementById("managerPWD").value; if(userInput==""){ document.getElementById("show").innerHTML="<font color='red'>您没有选择登录功能</font>"; flag= false; return flag; } if(userInput !=1 && userInput !=2 ){ document.getElementById("show").innerHTML="<font color='red'>您输入的不正确</font>"; flag= false; return flag; } if(managerId==""){ document.getElementById("managers").innerHTML="<font color='red'>管理员账号不能为空</font>"; flag= false; return flag; } if(managerPWD==""){ document.getElementById("managersPWD2").innerHTML="<font color='red'>管理员密码不能为空</font>"; flag= false; return flag; } return flag;}</script></head><body style="background-color: #999"><div style="padding-top: 100px;" align="center"><form action="showManager.jsp" onsubmit="return checked()"method="post"><table width="1024" height="223"><tr><td colspan="2" align="center">欢迎你进入商品管理系统</td></tr><tr><td colspan="2"> </td></tr><tr><td colspan="2" align="center">1.商品购物系统</td></tr><tr><td colspan="2" align="center">2.商品管理系统</td></tr><tr><td width="465" height="21" align="center">如果你是客户请选择<1></td><td width="547" align="center">如果你是管理员请选择<2></td></tr><tr><td width="465" align="right">请输入:<input type="text" name="userInput" id="userInput" /></td><td width="547" id="show" align="left"></td></tr><tr><td width="465" align="right">请输入管理员帐号:<input type="text" name="manager" id="managerId" /></td><td width="547" id="managers" align="left"></td></tr><tr><td width="465" align="right">请输入管理员密码:<input type="text" name="managersPWD" id="managerPWD" /></td><td width="547" id="managersPWD2" align="left"></td></tr><tr align="center"><td colspan="2"><input type="submit" value="登录"style="background-color: #666666; border: 1px 1px 1px 1px; font-weight: bold;"width="100px;" /></td></tr></table></form></div></body></html>