今天在写一个ajax请求的时候出现ajax请求成功后,页面居然会出现刷新,url有跳转,找了半天,终于发现了问题所在,原来我在表单里面有一个 <input type="button" onclick="submit()"/>元素,之前用的是表单提交的方式发送的请求,改成ajax请求后忘记删除,但是我好奇的是我在js里面写的submit()方法已经被删除了,怎么还会提交表单呢?
我仔细一看,原来button的onclick事件触发的submit()方法还是会提交表单,如果将该方法改一下名字,表单就不会提交了!。
下面是我的jsp页面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<%@ include file="/jsp/Meta.jsp" %>
<title>登录页面</title>
</head>
<body>
<form action="login/userLogin" method="post">
用户名: <input type="text" name="userName" id="userName" /><spanid="user_message"></span> <br/>
密码:<input type="password" id="pwd" name="pwd"/><span id="pwd_message"></span> <br/>
<span><button id="btn" onclick="submit()">登录</button></span>
</form>
</body>
</html>
<script type="text/javascript">$(function(){var oBtn =document.getElementById('btn');//ajax请求获取用户登录信息$(oBtn).click(function(){var login_message ={'userName':$("#userName").val(),'pwd':$("#pwd").val()};$.ajax({url:'<%=ctx%>/login/userLogin',type:'post',data:login_message,//contentType: "application/json; charset=utf-8",dataType:'json',success:function(data){console.log(JSON.stringify(data));console.log(eval('('+data+')'));var result= eval('('+data+')');},error:function(data){console.log(JSON.stringify(data));}});//oForm.submit=true;});});</script>