• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:複数のSubmitボタンがあり、1つのボタンのみ新しいウインドウで開く)

複数のSubmitボタンがあり、1つのボタンのみ新しいウインドウで開く

このQ&Aのポイント
  • 複数のSubmitボタンがあり、1つのボタンのみ新しいウインドウで開く方法を紹介します。
  • すべてのsubmitボタンにonclickイベントを付加して、イベントに引数を渡して新しいウインドウで開くか、現在のウインドウで開くかを選択することもできます。
  • ただし、特定のボタンのみ新しいウインドウで開く場合、document.myform.submit()では指定のボタンを押させることができません。対策としては、document.myform.mySubmitBtn.submit()のように特定のボタンを押す方法を使用し、その後にdocument.myform.target = "_top";を追加することで、新しいウインドウが開いた後に他のボタンが元の方法で動作するようになります。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.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>

nshoes
質問者

お礼

ありがとうございます。参考にさせてもらいます。

その他の回答 (2)

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.2

調べてないけど、タイマーでタイミングをずらして元に戻す処理をしてみては? onclick="this.form.target='_blank';setTimeout('~.form.target=\'_self\'',1)"

nshoes
質問者

お礼

ありがとうございます。参考にさせてもらいます。

回答No.1

ボタンの方でセットしてみては? <input type="submit" value="新しいウインドウで開く" onclick="this.form.target="_blank"> 未検証です。

nshoes
質問者

お礼

ありがとうございます。 しかしこの方法ですと、target="_blank"と設定されるため、その後別ボタンを押した場合も新しいウインドウで開かれてしまいます。 「このボタンのみ新しいウインドウで開き、その後別ボタンを押したときは元のウインドウで開く」  という動作にしたいと思っています。

関連するQ&A