【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集

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

上記について教えてください。

・すべてのsubmitボタンにonclickイベントを付加してイベントに引数を渡し新しく開くか、現在のウインドウで開くかを選択する
という方法でも可能かと思うのですが、新しく開くボタンにのみイベントの記述をしたいと考えています。(現在のウインドウに開くsubmitボタンに手を加えたくない)

そこで、

(1)document.myform.target="_blank";
(2)document.myform.submit();
(3)document.myform.target = "_top"; (その他のボタン用に元に戻す)

のようにしてみたのですが、
(2)document.myform.submit();
で指定のボタンを押させることができないため
document.myform.mySubmitBtn.submit();
のようにすると指定のボタンを押させることが可能なのですが、そうするとその後の
(3)document.myform.target = "_top";
が反映されず、新しいウインドウが開いた後は、すべてのボタンとも新しいウインドウで開かれてしまいます。


何か良い案あればよろしくお願い致します。

A 回答 (3件)

ボタンの方でセットしてみては?



<input type="submit" value="新しいウインドウで開く" onclick="this.form.target="_blank">

未検証です。
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/06/27 13:42

調べてないけど、タイマーでタイミングをずらして元に戻す処理をしてみては?


onclick="this.form.target='_blank';setTimeout('~.form.target=\'_self\'',1)"
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/11/13 16:43

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>
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/11/13 16:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報