一般的に言えば、複数の投稿(ユーザーが前進/後退、再開など)を引き起こす可能性があるため、ユーザーに表示されるページにフォームを送信することは賢明ではありません。すでにjQueryを使用しているので、代わりに$ .post()または$ .get()を使用してください。 (http://api.jquery.com/jQuery.post/およびhttp://api.jquery.com/jQuery.get/を参照)。 e.resultにあるスクリプトは、単にフォームの提出を処理し(おそらくDBに保存する)、結果を返します。その結果に基づいて別のページが表示されます。
だからあなたのコードは次のようになります:
$("#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オブジェクトまたは結果ページのURLを返すことができます使用:
try {
var obj = $.parseJSON(result);
window.open('resultPageURL&'+JSON.stringify(obj), '_blank');
} catch (e) {
alert('Not a valid JSON result');
}
または
window.open(result, '_blank');
を、私はそれは残念だ確信していないが、あなたは全く正しいです。 –