- ベストアンサー
複数のSubmitボタンがあり、1つのボタンのみ新しいウインドウで開く
- 複数のSubmitボタンがあり、1つのボタンのみ新しいウインドウで開く方法を紹介します。
- すべてのsubmitボタンにonclickイベントを付加して、イベントに引数を渡して新しいウインドウで開くか、現在のウインドウで開くかを選択することもできます。
- ただし、特定のボタンのみ新しいウインドウで開く場合、document.myform.submit()では指定のボタンを押させることができません。対策としては、document.myform.mySubmitBtn.submit()のように特定のボタンを押す方法を使用し、その後にdocument.myform.target = "_top";を追加することで、新しいウインドウが開いた後に他のボタンが元の方法で動作するようになります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
submitのvalueをみて判断してみては? <script> try{ document.addEventListener ('click',function(e){clickfunc(e)},true); //基本 }catch(e){ document.attachEvent('onclick',function(e){clickfunc(e)}); //IE } function clickfunc(e){ var t = (e.srcElement || e.target); if(t.nodeName=="INPUT" && t.type=="submit"){ t.form.target=t.value=="別窓"?"_blank":""; } } </script> <form> <input type="text" name="a" value="aaa"> <input type="submit" value="test1"> <input type="submit" value="test2"> <input type="submit" value="test3"> <input type="submit" value="別窓"> </form>
その他の回答 (2)
- steel_gray
- ベストアンサー率66% (1052/1578)
調べてないけど、タイマーでタイミングをずらして元に戻す処理をしてみては? onclick="this.form.target='_blank';setTimeout('~.form.target=\'_self\'',1)"
お礼
ありがとうございます。参考にさせてもらいます。
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
ボタンの方でセットしてみては? <input type="submit" value="新しいウインドウで開く" onclick="this.form.target="_blank"> 未検証です。
お礼
ありがとうございます。 しかしこの方法ですと、target="_blank"と設定されるため、その後別ボタンを押した場合も新しいウインドウで開かれてしまいます。 「このボタンのみ新しいウインドウで開き、その後別ボタンを押したときは元のウインドウで開く」 という動作にしたいと思っています。
お礼
ありがとうございます。参考にさせてもらいます。