すでにターゲットを定義している"_blank"
ので、以下のコードを試して、どのように機能するかを確認するよりもリンク例を確認してください。$.post
送信せずに試してみるajax
か、バックグラウンドのどこかにデータを保持して新しいタブに送信するために使用できます。
$(document).ready(function() {
$('#YourForm').submit(function() { // <---- Your form submit event
$(this).target = "_blank"; // <---- to new tab
$.post(url, function(data) {
// whatever you wanna post do it here
});
window.open($(this).prop('action')); // <---- form action attribute = url
return false; // <---- prevents submit
});
});
またはajaxを使用する
$(document).ready(function() {
$('#YourForm').submit(function() { // <---- Your form submit event
$(this).target = "_blank"; // <---- to new tab
var json = $.toJSON({ yourjsondata1: data1, yourjsondata2: data2 });
$.ajax({
url: "/some/url",
type: "POST",
dataType: "json",
data: json,
contentType: "application/json; charset=utf-8",
success: function (data) {
window.open($(this).prop('action')); // <---- form action attribute = url
}
});
return false; // <---- prevents submit
});
});
この例を参照してください:
http://jquerybyexample.blogspot.com/2012/05/open-link-in-new-tab-or-new-popup.html
編集:
$(document).ready(function() {
$('#someid').click(function() {
// lets say you got ur data from your post method
var url = '/api?id=' + $('#someid').val();
$.post(url, function(data) {
if (data != '') {
// update your link
$('#somelink').attr('action', data);
// update target to new tab
$("#somelink").target = '_blank';
// than go
window.open($("#somelink").attr('action'));
return false;
} else {
}
});
});
});
フィドル: http: //jsfiddle.net/BerkerYuceer/nfTWL/