2012-06-04 81 views
2

我正在嘗試使用JQuery對返回JSON對象的servlet進行Ajax調用。 在JSP頁面我有一個表單,起初我不知道如何從表單中獲取數據,然後我發現.serialize。jquery Ajax調用servlet

我有以下的JavaScript:

$(document).ready(function() { 
    $("#submit").click(function blabla() { 
     var formData = $('form').serialize(); 
     $.ajax({ 
      type: "POST", 
      url: "/ArchiveSearch/Search", 
      dataType: "json", 
      data: formData, 
     }); 
    }); 
}); 

的信息來自以下形式:

<form method= post"> 
      <div class="searchCiteria"> 
       <div id="searchValueBlock1"> 
         <div><span class="label">Case ID:</span><input type="text" name="messagecaseid" size="25"/></div> 
         <div><span class="label">Onderwerp:</span><input type="text" name="messagesubject" size="25" /></div> 
         <div><span class="label">Afzender:</span><input type="text" name="messagesender" size="25"/></div> 
         <div><span class="label">Ontvanger:</span><input type="text" name="messagereceiver" size="25"/></div> 
       </div> 

       <div id= "searchValueBlock2"> 
        <div><span class="label">Datum:</span><input type="text" name="date1" size="25"/></div> 
        <div><span class="label"></span><input type="text" name="date2" size="25"/></div> 

        <div class="submit"> 
         <input type="submit" value="Search"> 
        </div> 
       </div> 
      </div> 
      </form> 

當我使用操作參數的形式在servlet repondes像它應該。 但我似乎無法讓Ajax調用工作。

我在做什麼錯?

+0

相關:http://stackoverflow.com/questions/4114742/simple-calculator-in-jsp答案基本上是一個使用Ajax和JSP/Servlet的迷你教程。 – BalusC

回答

1

必須成功PARAM添加AJAX功能

 
$.ajax({ 
      type: "POST", 
      url: "/ArchiveSearch/Search", 
      dataType: "json", 
      data: formData, 
success: function(data) { 
    $('.result').html(data); 
    alert('Load was performed.'); 
    } 
});

+0

它的工作,數據VAR持有從服務器權利的迴應,我問,因爲,當我做到成功:功能(數據){警報(數據)}我沒有看到任何彈出式窗口 – TrashCan

+0

當我添加一個額外的警報數據功能後,我確實看到兩個警報 – TrashCan

1

提交按鈕的默認行爲是POST的形式,將用戶重定向到action屬性OND形式的URL。當你沒有(你應該...)有一個動作屬性,它會重新加載頁面。爲防止頁面重新加載,您需要在$("#submit").click函數結束時返回false以防止默認行爲。