ボタンへのクリックをインターセプトし、そのデータを読み取り、送信前にフォームを変更できます。
したがって、HTML:
<form id='double' method="GET" action="http://google.com/search">
<input name="q" type="text">
<button class="Submit" data-target=""> Submmit here</button>
<button class="Submit" data-target="_blank"> Open new</button>
</form>
JS
$('button.Submit').click( function() {
var t=$(this);
var form=t.parents('form');
form.attr('target',t.data('target'));
form.submit();
return false;
});
このようにして、html マークアップでターゲット オプションを制御できます。
http://jsfiddle.net/oceog/gArdk/
フォームをクリアしないtarget
と、次のシナリオが発生します。
- ユーザーがポップアップボタンをクリックし、
- フォームを送信し、
- 閉じた窓、
- 非ポップアップをクリック
また、それは彼をターゲットからポップアップさせます。
私のスニプレットでは、 data-target='' の場合にターゲットをクリアします
1 つの要素のみをポップアップとしてマークする場合は、フォームを複製する必要があります:
http://jsfiddle.net/oceog/gArdk/2/
JS:
$('button.Submit.popup').click( function() {
var t=$(this);
var form=t.parents('form').clone(true).attr('target','_blank');
form.submit();
return false;
});
HTML:
<form id='double' method="GET" action="http://google.com/search">
<input name="q" type="text">
<button class="Submit"> Submmit here</button>
<button class="Submit popup"> Open new</button>
</form>