我在jsp中有一个表单:
<form id="emailForm" data-role="form">
<input type="text" class="form-control" id="name" name="name" placeholder="Enter full name..">
<input type="submit" id="emailSubmit" name="emailSubmit" class="btn btn-default" value="submit">
</form>
我使用AJAX将表单发送给控制器:
$("#emailSubmit").click(function(e){
e.preventDefault(); //STOP default action
var postData = $("#emailForm").serializeArray();
$.ajax(
{
type: "POST",
url : "HomeController",
data : postData,
success: function(data)
{
$("#emailResult").html("<p>Thank your for submitting</p>);
},
error: function(jqXHR, textStatus, errorThrown)
{
$("#emailResult").html("<p>ss"+errorThrown+textStatus+jqXHR+"</p>");
}
});
});
我检查它是否已在Controller中提交:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String emailSubmit = request.getParameter("emailSubmit");
if(emailSubmit != null){
// continue
}}
有人可以告诉我为什么在检查表单是否在控制器中提交时是null
?
答案 0 :(得分:0)
对于表单,标准方法是捕获submit
事件而不是按钮的click
事件:
$("#emailForm").submit(function(e){
e.preventDefault();
var postData = $(this).serializeArray(); // or: $(this).serialize();
$.ajax({
type: "POST",
url : "HomeController",
data : postData,
success: function(data)
{
$("#emailResult").html("<p>Thank your for submitting</p>);
},
error: function(jqXHR, textStatus, errorThrown)
{
$("#emailResult").html("<p>ss"+errorThrown+textStatus+jqXHR+"</p>");
}
});
});
答案 1 :(得分:0)
我已经尝试了几种方法来检查提交按钮是否为空并且无法解决该问题。现在我在表单中设置了一个隐藏的输入字段,如下所示:
<input type="hidden" name="form" value="contactForm">
在控制器中我检查表格:
String form = request.getParameter("form");
if(form.equals("contactForm")){
// continue
}
这样做可以让我知道哪个表格已经发布到控制器。