我的表格如下,它需要發送一個動作給我的Java Servlet來更新數據庫。如何提交沒有重載頁面的表單,沒有jQuery?
如何在沒有頁面重新加載的情況下提交表單? 目前與action="myServlet"
它保持直接我到一個新的頁面。如果我將操作移除到myServlet,則輸入不會添加到我的數據庫中。
<form name="detailsForm" method="post" action="myServlet"
onsubmit="return submitFormAjax()">
name: <input type="text" name="name" id="name"/> <br/>
<input type="submit" name="add" value="Add" />
</form>
在我的Java servlet的觀點,request.getParameter
將查找名稱,繼續將其添加到我的分貝。
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
if (request.getParameter("add") != null) {
try {
Table.insert(name);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
在我的JavaScript的一部分,我有一個submitFormAjax
功能
function submitFormAjax()
{
var xmlhttp;
if (window.XMLHttpRequest) {
// code for modern browsers
xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
alert(xmlhttp.responseText); // Here is the response
}
var id = document.getElementById("name").innerHTML;
xmlhttp.open("POST","/myServlet",true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send("name=" + name);
}
您將需要從你的函數返回'FALSE'停止標準形式的發生也提交。 (您需要修正函數中的語法錯誤:'.getElementById(「name)''中關閉''''前面缺少的'''。) – nnnnnn
[Submit form form without reloading page](http: //www.stackoverflow.com/questions/18169933/submit-form-without-reloading-page) – abhishek