如何在 form 表單提交後實現頁面不跳轉?
最近在做一個小產品,放在我自己開發的網站上面,我希望使得form表單提交後不讓頁面跳轉。當然,我使用了ajax來非同步處理,這樣能夠很好地實現。問題是在實現的時候我的input中的type就變成了button。因為變成了button我不能很好地把原html上面的一些信息,提交到用來處理提交數據的php文件上。(php文件目前能夠更新資料庫中的信息,但是不能向資料庫提交信息,因為我改成了button。)
給form的submit事件綁定函數 做非同步提交 這樣就不需要改成button了
最簡單的就是給 form 增加 onsubmit 參數,非同步提交
比如調用 js 函數用題主所述的 jquery ajax 方法:
&
&
$("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 |