2016-08-26 50 views
0

我正在使用Ajax和jQuery提交動態表單。來自Servlet頁面的響應顯示在新頁面

它工作正常,但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/>");); 
+0

請閱讀https://stackoverflow.com/help/how-to-ask。 –

回答

0

遇到這一點,因爲你沒有停止的形式提交哪些呢:

因此,根據.submit(handler)改變您的線路:

form.submit(function() { 

到:

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

UPDATE 根據您的意見,我建議你試試下面的代碼:

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>

+0

您好gaetanoM感謝您的迴應,我已相應地更改您的代碼的建議,但仍然有同樣的問題。表格數據插入,但它再次顯示我的消息到下一個新的page.can你PLZ建議我。 –

+0

你什麼時候打電話:函數調用(formid)? – gaetanoM

+0

點擊提交按鈕。這個提交按鈕放置在表單中。 –