• ベストアンサー

Checkboxにチェックがある時と無い時に別々のサイトを開くには?

前回投稿した同様の質問が、規定に抵触するとのこと、 削除になりました。 yambejpさん、申し訳ありませんでした。 規定に触れないようにお尋ね方法を変えます。 ------------------------------------------------------- Checkboxにチェックが有るか無しかで、その直下にある 送信ボタンを押した場合に、開くサイトを別々にしたい のですが、色々試しましたが分かりませんでした。 絵的にはこんな感じです。 ------------------------------------- □これ(\980)もついでに購入する。 ( 送信ボタン ) ------------------------------------- ついでに購入しない場合は、www.123.comを、 ついでに購入する場合は、www.abc.comを開くように したいと思います。 yambejpさんのお教えのもと、途中まで自力で書いたもの は次の通りです。 <html> <head> <title></title> <script type="text/javascript"> <!-- function openurl(f){ var nocheckurl="http://www.123.com"; var url=f["url"].checked?f["url"].value:nocheckurl; var winID=window【ここからが分かりませんでした】 } //--> </script> </head> <body> <input type="checkbox" value="add" name="add" id="add" /> これ(\980)もついでに購入する。<br> <input type="submit" onclick="openurl()" value="送信ボタン" /> </body> </html> どうぞよろしくお願い致します。

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

サブミットしたいならこんな感じですね・・・ <script type="text/javascript"> function openurl(f){ var checkurl="http://www.abc.com"; var nocheckurl="http://www.123.com"; var add=document.getElementById("add") var url=add.checked?checkurl:nocheckurl; f.action=url; return true; } </script> <form onsubmit="return openurl(this)" target="_blank"> <input type="checkbox" id="add" /> <label for="add">これ(\980)もついでに購入する。</label><br> <input type="submit" value="送信ボタン" /> </form>

A_hiroshi
質問者

お礼

ありがとうございました。大変助かりました。yambejpさんが最初に示してくださった記述が無かったら、完成できませんでした。

A_hiroshi
質問者

補足

yambejpさん、再びお助け戴きありがとうございます。 この記述を利用させていただきました。 さて、 たとえば、この記述のあるページのURLが http://www.xyz.com であるとして、 チェックを入れてクリックすると、 新しいウィンドウが立ち上がり、URLが http://www.xyz.com/http://www.abc.com とつながってうまく表示されません。 重ね重ね申し訳ありませんが、対策をお教えいただけますと 大変助かります。 どうぞよろしくお願い致します。

その他の回答 (3)

  • auty
  • ベストアンサー率58% (284/486)
回答No.4

・ まだ "http://www.123.com"; の終わりのほうにゴミが残っている可能性があります。 徹底的にチェックしてみてください。

A_hiroshi
質問者

補足

以下の記述でうまく機能するようになりました。 お騒がせしてすみませんでした。 ---------------------------------------------------- <html> <head> <script type="text/javascript"> <!-- function openurl(f){ var checkurl="http://www.abc.com"; var nocheckurl="http://www.123.com"; var add=document.getElementById("add") var url=add.checked?checkurl:nocheckurl; window.open(url, 'Win1'); } //--> </script> <body> <form> <input type="checkbox" id="add" /> <label for="add">これ(\980)もついでに購入する。</label> <input type="button" value="送信ボタン" onClick="openurl(this)"> </form> </body> </html>

  • auty
  • ベストアンサー率58% (284/486)
回答No.3

・ 確認する必要がありますが、 ​ は、打っていはいけません。 このOKWAVE では、コピペをすると、URLにこの文字列が含まれてしまうことがあるようです。

A_hiroshi
質問者

お礼

autyさん、何度も対策を考えてくださり、大変有難うございます。お陰さまで解決できました。重ねて御礼申し上げます。

A_hiroshi
質問者

補足

autyさん、度々ありがとうございます。 ご指示どおり、手打ちで打ち直したところ、 表示されるようになりました! さて、最後【/?】で終わります。 上の例でいくと、http://www.123.com/? と表示されます。 また、開きたいURLの途中に【?】を含む場合、 【?】の箇所で途切れて全部表示されません。 たとえば、 http://www.123.com/xxx.php?zzz=12345 のような場合です。 重ね重ね申し訳ありません。

  • auty
  • ベストアンサー率58% (284/486)
回答No.2

http://www.xyz.com/http://www.abc.com となるということは、http://www.abc.comの部分がうまく認識されていない可能性があります。つまり、この中に不明のごみが混じっている可能性があるということになります。 そこで、次の2つのURLは、打ち直してみてください。 var checkurl="​http://www.abc.com"; var nocheckurl="​http://www.123.com";

A_hiroshi
質問者

補足

autyさん、ありがとうございます。 試してみました。 すると、 http://www.xyz.com/&? というウィンドウが立ち上がり、目標の ​http://www.abc.comhttp://www.123.com は開けませんでした。 申し訳ありません。

関連するQ&A