簡體   English   中英

如何檢查表單是否以Java提交

[英]How to check if form was submitted in Java

我在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嗎?

對於表單,標准方法是捕獲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>");
        }
    });
});

我嘗試了幾種方法來檢查“提交”按鈕是否為null並不能解決該問題。 現在,我以如下形式設置了一個隱藏的輸入字段:

<input type="hidden" name="form" value="contactForm">

在控制器中,我檢查以下形式:

String form     = request.getParameter("form");
    if(form.equals("contactForm")){
        // continue
    }

這樣做使我知道哪個表格已過帳到控制器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM