2012-12-28 78 views
9

我有這個代碼片段,我將數據傳遞給另一個jsp文件。jsp ajax使用jquery調用

的Javascript

$(document).ready(function() { 
    $("#click").click(function() { 
     name = $("#name").val(); 
     age = $("#age").val(); 
     $.ajax({ 
      type : "POST", 
      url : "pageTwo.jsp", 
      data : "name=" + name + "&age=" + age, 
      success : function(data) { 
       $("#response").html(data); 
      } 
     }); 
    });  
});  

HTML

<body> 
    Name:<input type="text" id="name" name="name"> 
    <br /><br /> 
    Age :<input type="text" id="age" name="age"> 
    <br /><br /> 
    <button id="click">Click Me</button> 
    <div id="response"></div> 
</body> 

pageTwo.jsp,我的代碼是

<% 
    String name = request.getParameter("name"); 
    String age = request.getParameter("age"); 
    out.println(name + age); 
%> 

但日是不是在工作。我的Jquery有任何錯誤嗎?可以幫我嗎?

回答

4
$("#click").click(function(e) { 
    // e.preventDefault(); 
    ... 
    return false; 
}); 

並且當然會安裝firebug或使用chrome默認開發者工具(f12)。打開控制檯並運行代碼。

+0

爲什麼「返回false」;必要?它的工作,但我不明白爲什麼。 – Gabrer

+1

「返回false」停止任何默認操作。假設「#click」是一個鏈接,所以現在當你點擊它時會將你重定向到某個頁面(href網址),現在如果你有「返回false」,它將不會執行瀏覽器的默認操作。 「return false」您需要將代碼放在回調中。你也可以使用「e.preventDefault();」您可以將其放在回調函數內的代碼頂部。 – HamidRaza

+0

非常感謝!非常清晰和快速:) – Gabrer

1
$(document).ready(function() { 
    $("#click").click(function() { 
     name = $("#name").val(); 
     age = $("#age").val(); 
     $.ajax({ 
      type: "POST", 
      url: "pageTwo.jsp", 
      data: "{'name':'" + name + "','age':'" + age + "'}", 
      contentType: "application/json", 
      async: false, 
      success: function (data) { 
       $("#response").html(data.d); 
      } 
     }); 
    }); 
});