我知道我可以做一個徹頭徹尾的jQuery帶POST請求並將$.post()
語法。然而,我很想知道是否有可能讓jQuery在整個頁面上發佈發佈請求(就像提交表單時一樣),以便加載一個全新的頁面。這可能嗎?
有一個在DOM沒有表單元素,所以我不能做form.submit()。
我知道我可以做一個徹頭徹尾的jQuery帶POST請求並將$.post()
語法。然而,我很想知道是否有可能讓jQuery在整個頁面上發佈發佈請求(就像提交表單時一樣),以便加載一個全新的頁面。這可能嗎?
有一個在DOM沒有表單元素,所以我不能做form.submit()。
不知道如果我收到了你的問題,但如果你只是想發佈之後將客戶端重定向,只需直接在客戶端在$。員額的回調函數一樣
jQuery.post(url, {}, function() { location.href = "somewhere_else.html"; })
類 - 我的意思是,在一個正常的表單提交,後的參數發送到服務器,服務器用一個html文件,它取代了當前的響應。我想用JQuery做同樣的事情(所以只有一篇文章給服務器,不是一篇文章,然後是一個單獨的文章,因爲你的例子會產生我認爲的)。 – UpTheCreek 2009-11-10 15:03:07
噢,你爲什麼不直接發佈表單(沒有javascript)到那個頁面,然後處理請求呢? :) - Marco 0秒前 – Marco 2009-11-10 15:07:51
因爲沒有任何形式。 – UpTheCreek 2009-11-10 15:49:22
我覺得你試圖重新實現默認行爲。只需使用瀏覽器提供的常規提交機制即可。
如果您需要在將數據提交給服務器之前檢查數據,請將函數綁定到onsubmit事件並執行檢查,然後通過返回false或返回true來中斷提交操作並讓瀏覽器執行所有操作工作。你能理解這個嗎?
我用下面的例子中,允許多個按鈕提交序列化格式的數據,但有不同的選項,例如保存並保存&關閉。即使我使用jQuery發佈序列化數據,整個頁面都會重新加載,因爲我將ajax post響應數據發送回「document.body」。
<form id="myform">
<button id="button1" type="button" onclick="submitButton(true,false)" name="save" value="save">Save</button>
<button id="button1" type="button" onclick="submitButton(true,true)" name="close" value="close">Save and Close</button>
</form>
function submitButton(save,close) {
$.ajax({url:'page.asp', data:''+$('#myform').serialize()+'&save='+save+'&close='+close+'',
type: 'post',
success: function(data){$(document.body).html(data);}
});
}
您不需要表單元素,因爲您可以將它用於任何具有唯一標識的元素。
同樣在回答評論「所以只有一個職位的服務器,而不是一個職位,然後單獨獲得」 - 這種方法實現了。 – 2011-11-22 12:23:48
我使用這個功能時,我需要發送數據,並沒有形式的DOM:
function postData(actionUrl, method, data) {
var mapForm = $('<form id="mapform" action="' + actionUrl + '" method="' + method.toLowerCase() + '"></form>');
for (var key in data) {
if (data.hasOwnProperty(key)) {
mapForm.append('<input type="hidden" name="' + key + '" id="' + key + '" value="' + data[key] + '" />');
}
}
$('body').append(mapForm);
mapForm.submit();
}
我這樣稱呼它:
var data= { 'property1': 666, 'property2': 'I am a boy' };
postData('http://urltopostdata.to', 'post', data);
這對我有用。感謝您使用.hasOwnProperty(),以確保您使用的是酒店需要從數據對象,而不是該原型(我不得不尋找原因:http://stackoverflow.com/questions/684672/loop-through-javascript-目的) – 2013-12-13 22:13:07
出了什麼問題'myFormElement。提交()'?或者更好的是,當用戶點擊提交按鈕時,*讓瀏覽器提交表單*,不需要JavaScript。 – 2009-11-10 15:08:40
我希望能夠在DOM中沒有表單的情況下做到這一點(就像我可以在沒有DOM中的表單的情況下執行帶外發布一樣)。但我猜不。 – UpTheCreek 2009-11-10 15:50:43
你實際上沒有'