一般而言,将表单提交给用户将看到的页面是不明智的,因为它可能导致多个提交(如果用户前进/后退,他们重新打开标签等)。由于您已经在使用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');
我不相信这是不幸的,但你说的很对。 –