一般而言,將表單提交給用戶將看到的頁面是不明智的,因爲它可能導致多個提交(如果用戶前進/後退,他們重新打開標籤等)。由於您已經在使用jQuery,請改用$ .post()或$ .get()。 (見http://api.jquery.com/jQuery.post/和http://api.jquery.com/jQuery.get/)。位於e.result的腳本應該簡單地處理表單提交(可能將內容保存到數據庫)並返回結果。然後用戶會看到一個基於該結果的單獨頁面。
所以,你的代碼看起來是這樣的:
$("#formMain").submit(function() {
return false;
});
function submitForm(url)
$.post(url, $("#formMain").serialize(), function(result) {
window.open('resultPageURL&result='+encodeURIComponent(result), '_blank');
});
}
submitForm(e.result);
顯然結果的格式是由你 - 你可以很容易地返回一個JSON對象或結果頁面,如果你想要的網址,使用:
try {
var obj = $.parseJSON(result);
window.open('resultPageURL&'+JSON.stringify(obj), '_blank');
} catch (e) {
alert('Not a valid JSON result');
}
或
window.open(result, '_blank');
我不相信這是不幸的,但你說的很對。 –