2012-04-02 11 views
0

私はフォームを持っています。このフォームには、同じ投稿データで異なることをするいくつかの異なる送信ボタンがあります。特定の送信ボタンが押された場合にのみ、フォームを新しいウィンドウに送信しますか?

は、フォームは次のようになります単純化のために言うことができます:現時点では

<form method="post"> 
    <input type="hidden" name="ids" value="1,2,3,4" /> 
    <input type="submit" id="picking" name="picking" value="Picking" /> 
    <input type="submit" id="shipping" name="shipping" value="Shipping" /> 
    <input type="submit" id="invoice" name="invoice" value="Invoice" /> 
</form> 

フォームは、それ自体に提出し、私はPOSTデータからURLを構築し、ボタンが押された提出し、サーバ側をうまく、 PHPのリダイレクトを行って私が必要とするものを実行します。これは正常に動作します。

しかし、「請求書」をクリックしたときにのみ、データを新しいウィンドウに投稿するフォームを探しています。これはフォームにtarget="_blank"を追加するだけで済みます。他の2つのボタンも新しいページに送信されます。

私は、データが上記よりはるかに複雑であり、その多くがユーザーによって入力されるため、フォームを3つの異なる形式に分割することもできません。

JavaScript/JQueryを使用してこれを行う方法はありますか?もしそうなら、私はどこから始めるのですか?

ありがとうございます。

+0

あなたは心の中ではJavaScript要件でこれを構築する場合、フォームはに無用になりますJavaScriptを無効にしている人 – Straseus

+0

javascriptで行う必要がある場合は、onclickイベントでsubmitする前に 'form.setAttribute(" target "、" _blank ");を実行します。 – Straseus

+0

@StraseusはJavascriptに依存している問題ではありません。それは、誰がそれを使うのか正確に知っているもののためであり、彼らはJSを持っていることを知っています。 – Nick

答えて

4

請求書をクリックしたときには、フォームに空白のターゲットを追加することができませんでした?:

$("#invoice").click(function(){ 
    $('#form_id').attr('target', '_blank'); 
}); 

か:

$(document).on("click","#invoice",function(){ 
     $('#form_id').attr('target', '_blank'); 
    }); 
+0

ありがとう、それを考えなかった! – Nick

0

正しい送信ボタンにクリックハンドラーを追加してみてください。

$('#invoice').on('click', function(){ 
    //doStuff 
}); 

これにより、#invoiceの動作を他のものに影響を与えずに制御できます。

+0

あなたの答えが扱うべきである** doStuff **の部分です。 –

+0

さんが+1しました。 :) – Joe

関連する問題