通过jQuert Ajax的POST请求将表单序列化,然后提交到后台时,所有数据都为空的是怎么回事?
这是大致的代码
<html>
<head>
....
</head>
<body>
<div>
<form id="nq_data">
<div class="col-md-6 form-group">
<label for="name">编号</label>
<input type="text" class="form-control" id="openbeds_numbers"
placeholder="0">
</div>
<div class="col-md-6 form-group">
<label for="name">数目</label>
<input type="text" class="form-control" id="pnurse_begin_totalnumbers"
placeholder="0">
</div>
</form>
</div>
<div class="col-md-12 form-group">
<button style="width: 150px" type="button" class="btn btn-default"
onclick="savaData()">暂存</button>
</div>
<script type="text/javascript">
function savaData() {
$.post("<%=basePath%>savaData.action",
$("nq_data").serialize(),function(data){
if(data == "OK"){
alert("已成功保存!");
window.location.reload();
}else{
alert("保存失败!");
window.location.reload();
}
});
}
</script>
</body>
先看下nq_data序列化后是否有数据,再看看后台的访问数据是什么
表单元素没有name属性
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
<script src="js/jquery-3.1.0.js">
console.log("hhhh")
</script>
</head>
<body>
<form >
<input type="text" name="firstName"/>
<input type="text" name="lastName"/>
</form>
<button onclick="getInfo()">序列化</button>
<script type="text/javascript">
function getInfo() {
var info = $("form").serialize();
$.post("GetInfoController",info,function (result) {
console.log(result);
})
}
</script>
</body>
</html>
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(name = "GetInfoController",urlPatterns = {"/GetInfoController"})
public class GetInfoController extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
String firstName = request.getParameter("firstName");
String lastName = request.getParameter("lastName");
System.out.println("firstName: "+firstName+" "+lastName);
response.getWriter().write("success");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
}
获取表单数据时应该是$('#nq_data') 你看看你是不是少了个#
nq_data 是ID ,获取的时候应该有个#,$("#nq_data")