日期:2014-05-17  浏览次数:20660 次

jsp跳转疑问
请问这段代码中在没有输入“密码”和“账户”时只要点击“登陆”后除了提示代码不能为空外,还会自动跳转到首页面,应该输入密码和用户名后在跳转啊!这是怎么回事啊?


<%@ page language="java" contentType="text/html; charset=GBK"
import="com.aptech.jb.entity.USER"
pageEncoding="GBK"%>

<script language="javascript">

function login(){
if( document.myForm.uname.value =="" ){
alert("用户名不能为空");
return false;
}else if(document.myForm.upass.value == ""){
alert("密码不能为空");
return false;
} else {
return true;
}
}

</script>
<%
if (session.getAttribute("user") != null) {
%>
<table align="center">
<tr>
<td width=''><font color='red'>当前用户:
<%
USER user = (USER) session.getAttribute("user");
%>
<%=user.getUname()%></font>
</td>
<td width='100'><a href="login.do?sign=logout">[注销]</a></td>
</tr>
</table>
<%
} else {
%>
<form action="login.do" method="post" name="myForm"onsubmit="login();">
   <p>&nbsp;</p>
  <table align="center">
<tr>
<td colspan="2">用户名:</td>
</tr>
<tr>
  <td colspan="2"><input type="text" name="uname" size=10" class="editbox"></td>
</tr>
<tr>
<td colspan="2">密&nbsp;&nbsp;码:</td>
</tr>
<tr>
  <td colspan="2"><input type="password" name="upass" size=10"  class='editbox'></td>
  </tr>
<tr>
<td>
<input type="hidden" name="sign" value="login"/>
<input type="submit" value="登陆"onclick="login()" class='btn'>
<input type="reset" value="重置" class='btn'>
</td>
</tr>
<tr>
  <td><a href="z.jsp">注册用户</a></td>
</tr>
<tr>
<td width='100'><a href="list.do">返回首页</a></td>
</tr>
  </table>
   </form>
<%
}
%>
jsp

------解决方案--------------------
 这个可能是你的验证方法返回的是true. 


js改成这样
function login(){
if( document.myForm.uname.value =="" ){
alert("用户名不能为空");
return false;
}

 if(document.myForm.upass.value == ""){
alert("密码不能为空");
return false;

return true;
}

另外把<form action="login.do" method="post" name="myForm"onsubmit="login();">
属性间要有空格,别连上 ,提交按钮上和表单事件 一处用即可


------解决方案--------------------
把登陆后面的onclick事件去掉。
------解决方案--------------------
这样写:
<