A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 一步步 中级黑马   /  2013-11-8 10:51  /  1046 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请问这段代码中在没有输入“密码”和“账户”时只要点击“登陆”后除了提示代码不能为空外,还会自动跳转到首页面,应该输入密码和用户名后在跳转啊!这是怎么回事啊?到底哪里控制着让这个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>
<%
}
%>

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

2 个回复

倒序浏览
<input type="submit" value="登陆"onclick="login()" class='btn'>
当你点击登录的时候,执行了JS函数login(),并且在没输入的情况下返回了false
<form action="login.do" method="post" name="myForm"onsubmit="login();">
在你点击登录按钮的时候,因为【input type="submit" value="登陆"】他的类型是submit所以form要提交数据,提交到哪里呢?onsubmit="login()",他又提交到js函数login()中,
然后又返回了false
接下来会根据form的action属性将数据提交到login.do中去
我没有com.aptech.jb.entity.USER这个类,也不能继续调试了。。。

评分

参与人数 1黑马币 +3 收起 理由
乔兵 + 3

查看全部评分

回复 使用道具 举报
首先,如楼上所说,登录那个submit按钮调用了js的login函数,然后再提交表单的时候又调用了一次。这个只调用一次就行了。
其次,可以写成
  1. onclick="return login();"
复制代码
或者
  1. onsubmit="return login();"
复制代码
试试

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马