標籤:

如何在 form 表單提交後實現頁面不跳轉?

最近在做一個小產品,放在我自己開發的網站上面,我希望使得form表單提交後不讓頁面跳轉。當然,我使用了ajax來非同步處理,這樣能夠很好地實現。問題是在實現的時候我的input中的type就變成了button。因為變成了button我不能很好地把原html上面的一些信息,提交到用來處理提交數據的php文件上。(php文件目前能夠更新資料庫中的信息,但是不能向資料庫提交信息,因為我改成了button。)


給form的submit事件綁定函數 做非同步提交 這樣就不需要改成button了


最簡單的就是給 form 增加 onsubmit 參數,非同步提交

比如調用 js 函數用題主所述的 jquery ajax 方法:

&
function PostData() {
$.ajax({
type: "POST",
url: "post.go",
data : "",
success: function(msg) {
}
});
return false;
}
&

&

&
&
&


$("form").submit(function (event) {
event.preventDefault();
var form = $(this);

if (!form.hasClass("fupload")) {
//普通表單
$.ajax({
type: form.attr("method"),
url: form.attr("action"),
data: form.serialize()
}).success(function () {
//成功提交
}).fail(function (jqXHR, textStatus, errorThrown) {
//錯誤信息
});
}
else {
// mulitipart form,如文件上傳類
var formData = new FormData(this);
$.ajax({
type: form.attr("method"),
url: form.attr("action"),
data: formData,
mimeType: "multipart/form-data",
contentType: false,
cache: false,
processData: false
}).success(function () {
//成功提交
}).fail(function (jqXHR, textStatus, errorThrown) {
//錯誤信息
});
};
});


定義一個 div 或者 iframe ,設置為 hidden , form 的 target 設置為 該 div 或者 iframe 的id


在js函數里,寫上window.histrory.go(0);


使用ajax提交給伺服器的參數可以在客戶端指定,get和post也可以自己選擇,兩者同時使用也沒有問題。

不知道我是否理解錯你的意思了,這裡有一個網頁你看看不知能否幫到你

http://www.w3school.com.cn/ajax/ajax_xmlhttprequest_send.asp


推薦閱讀:

2015年web前端開發行業的牛人有哪些?
為什麼cocos creator 不選擇兼容c#,而是只有js?
js中 aaa.style 和 aaa.getAttribute(style) 等價嗎,有無區別?
html5推出queryselectall之後,jQuery的作用是否減小了?
babel@6.2.0預編譯的ES6代碼無法在IE8上愉快的運行,各位前輩有辦法嗎?

TAG:JavaScript |