来自Servlet页面的响应显示在新页面中

Response from Servlet page is shown in new page

本文关键字:显示 新页面 响应 Servlet 来自      更新时间:2023-09-26

我使用Ajax和jQuery提交一个动态表单。

它工作正常,但是Servlet的响应显示在一个新页面中。

function call(formid) {
  alert(formid);
  var form = $(formid); // id of form tag
  form.submit(function () {
    $.ajax({
      type: form.attr('method'),  //post method
      url: form.attr('action'), //ajaxformexample url
      data: form.serialize(), // serialize input data values
      success: function (data) {
        var result=data;
        $('#content').html(result); //showing result
      }
    });
    return false; // not refreshing page
  });
} 

如何在同一页面中显示Servlet的响应?

(out.println("<br/>Massage = "+message+"<br/>"););

您遇到这个问题是因为您没有停止表单提交的操作:

所以,根据。submit(handler)改变你的行:

form.submit(function () {

:

form.submit(function (e) {
   e.preventDefault();  // stop form submit and do your ajax call

更新根据您的评论,我建议您尝试以下代码:

function submitFrm(obj, e) {
  e.preventDefault();
  var form = $(obj).closest('form'); // id of form tag related to the current button
  var formid = form.attr('id');
  alert(formid);
  $.ajax({
    type: form.attr('method'),  //post method
    url: form.attr('action'), //ajaxformexample url
    data: form.serialize(), // serialize input data values
    success: function (data) {
      var result=data;
      $('#content').html(result); //showing result
    }
  });
}
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<form id="formid">
    First name:<br>
    <input type="text" name="firstname"><br>
    Last name:<br>
    <input type="text" name="lastname">
    <input type="submit" value="Submit" onclick="submitFrm(this, event);">
</form>