フォームが一つに結ばれ、デフォルトのアクションは、送信ボタンを持っていることを考え方で、この問題にアプローチすることがより適切です、次にプレーンボタンにバインドされた代替アクション。ここでの違いは、ユーザーが入力を押してフォームを送信したときに使用されたものと、ユーザーが明示的にボタンをクリックしたときにのみ起動するものであることです。
とにかく、このことを念頭に置いて、これはそれを行う必要があります。
このJavaScriptを使用して
<form id='myform' action='jquery.php' method='GET'>
<input type='submit' id='btn1' value='Normal Submit'>
<input type='button' id='btn2' value='New Window'>
</form>
:送信ボタンのクリックイベントにコードをバインド
var form = document.getElementById('myform');
form.onsubmit = function() {
form.target = '_self';
};
document.getElementById('btn2').onclick = function() {
form.target = '_blank';
form.submit();
}
アプローチは、IE上では動作しません。
formtarget属性を使用してください:どのような私がclickinの代わりに 'enter'を押すと起こるボタン?あなたはフォームの提出イベントをキャンセルする必要があります。 –
フォームには1つのボタンが必要です。フォームが送信されてもボタンがアクティブ化されていない場合は「デフォルト」です。デフォルトは賢明に選択する必要があります。 「ヒット・エンター」はブラウザ固有の拡張機能であり、信頼されるべきではありませんが、すべてのブラウザは特定のボタンをアクティブにすることができます。 – thomasrutter
良い点ありがとう – Stoob