• ベストアンサー

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

  • checkbox 特定項目だけを、チェックするには

    こんにちは。いつもお世話になります。 checkbox内で、同じnameの中から特定のものだけ チェックさせるにはどうしたら良いでしょうか。 条件として、name='or52'の部分は変更出来ません。 <input type='button' value='A,B,Cだけを同時にチェック' onclick='checkAll();'> <form action='xxx.cgi' method='post' name='f1'> <input name='or5' type='checkbox' value='A'><br> <input name='or5' type='checkbox' value='B'><br> <input name='or5' type='checkbox' value='C'><br> <input name='or5' type='checkbox' value='D'><br> <input name='or5' type='checkbox' value='E'><br> <input name='or5' type='checkbox' value='F'><br> ......... </form> それで、こんなのをウェブから探してきました。 function checkAll() { for (i=0; i<7; i++) document.f1.elements["or52"+i].checked = true; } そして、同時にチェックしたいものだけ下記の様にしました。 <input name='or52' type='checkbox' value='A' id='or51'> <input name='or52' type='checkbox' value='B' id='or52'> <input name='or52' type='checkbox' value='C' id='or53'> 取りあえずできますが、エラーがでます。 「document.f1.elements["..."]は、objまたはnullではない!」 どうか教えて下さい。よろしくお願いします。

  • checkboxにチェックも入れていないのに、確認画面にて表示される不具合改善

    パソコン初級者です。宜しくお願い致します。 アンケートを作成しており、知人から頂いたプログラムを使用しております(-_-;) ラジオボタンや、テキストエリアなどは、問題ないのですが、 チェックボックスに限ってのみ、 チェックも入れていないのに、確認画面にて、あたかもチェックされたかのように項目が記載されてしまいます(-_-;) チェックした項目のみを表示するには、 下記のどの部分を変更すればよいのか、どうかご教示下さいませ。 ------------------------------------------ <script language=javascript> function processForm(){ var url_var="Result.htm?" if(navigator.appName != "Netscape") { for(j=0;j<document.form1.elements.length;j++){ var formObj=document.form1.elements[j]; if(formObj.type.toLowerCase() == "text" || formObj.type.toLowerCase() == "password" || formObj.type.toLowerCase().indexOf("select")>-1 || formObj.type.toLowerCase()=="textarea" || formObj.type.toLowerCase() == "checkbox"){ n_var=formObj.name; name_var=escape(n_var); // alert(name_var); value_var=escape(formObj.value); url_var=url_var+name_var+"="+value_var+"&"; //alert(url_var); }else{ if(formObj.type.toLowerCase()=="radio"){ if(formObj.checked){ n_var=formObj.name; name_var=escape(n_var); //alert(name_var); value_var=escape(formObj.value); url_var=url_var+name_var+"="+value_var+"&"; } } } } window.location =url_var.substring(0,url_var.length-1); } else{ for(j=0;j<document.form1.elements.length;j++){ var formObj=document.form1.elements[j]; if(formObj.type.toLowerCase() == "text" || formObj.type.toLowerCase() == "password" || formObj.type.toLowerCase() == "checkbox" || formObj.type.toLowerCase().indexOf("select")>-1 || formObj.type.toLowerCase()=="textarea"){ n_var=formObj.name; name_var=n_var; // alert(name_var); value_var=formObj.value; url_var=url_var+name_var+"="+value_var+"&"; //alert(url_var); }else{ if(formObj.type.toLowerCase()=="radio"){ if(formObj.checked){ n_var=formObj.name; name_var=n_var; value_var=formObj.value; url_var=url_var+name_var+"="+value_var+"&"; } } } } document.form1.action =url_var.substring(0,url_var.length-1); } } // End --> </script> <!--ここまで--><script language=javascript> function wrt(){ if(navigator.appName != "Netscape") { document.write("<form name=form1>") }else{ document.write("<form name=form1 onsubmit=\"return processForm();\">") } } wrt() </script><!--ここまで--></HEAD> <!--ここから--> <BODY> 質問1 <INPUT type="checkbox" name="1_質問" value="赤色">赤色 <INPUT type="checkbox" name="1_質問" value="青色">青色 <TBODY> <TABLE> <TBODY> <TR> <TD><FONT face="MS明朝P"><script language=javascript> function wrt1(){ if(navigator.appName != "Netscape") { document.write("<input type=\"button\" name=\"Submit\" value=\" 確認画面へ \" onclick=\"javascript:processForm();\">") }else{ document.write("<input type=\"submit\" name=\"Submit\" value=\" 確認画面へ \">") } } wrt1() </script></FONT></TD> </TR> </TBODY> </TABLE>

  • checkbox の入力チェックのやり方について

    お世話になります。 フォームにて、 javascriptで、入力チェックをおこないたいと思っています。 チェックボックスについては、どれか選択が一つでもなければ、アラートで、文字を出したいと思いますが、うまくできません。 チェックボックスの入力確認の方法を教えてください。 よろしくお願いいたします。 現在作りかけのソースは、下記の通りです。 <html> <head><title>-</title></head> <body> <form method="post" action="" onsubmit="return form_Validator(this)"> <input type="text" name="a1" size="15" maxlength="12"> <BR> <input type="checkbox" name="a1001" value="1"> <input type="checkbox" name="a1002" value="1"> <input type="submit" value="登録" name="submit"> </form> <script Language="JavaScript"> <!-- function form_Validator(doc) { if ( doc.a1.value == "" ) { alert( "BAD" ); return false; } /* a1001かa1002のチェックボックスのチェックがなければアラート----*/ return (true); } //--> </script> </body> </html>

  • CheckBoxの入力チェックについて

    CheckBoxの入力チェックについて CheckBoxの数は可変です。 全て未チェックのときにalertを表示したいです。 今はチェックしてもalertが表示されてしまいます。 よろしくお願いします。 <html> <head> <meta http-equiv="Content-Language" content="ja"> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <meta name="GENERATOR" content="Microsoft FrontPage 4.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <title>チェックボックス入力チェック</title> <SCRIPT TYPE="text/javascript"> <!-- function item_check() { count = 0; for (i=0;i<=document.form1.elements['item[]'][i].length;i++){ if(document.form1.elements['item[]'][i].checked){ count++; } } if(count==0){ alert("項目を選択してください。"); return(false); } return(true); } --> </SCRIPT> </head> <body> <form name="form1" method="POST" action="test.htm" onSubmit="return item_check()"> <p><input type="checkbox" name="item[]" value="1">項目1</p> <p><input type="checkbox" name="item[]" value="2">項目2</p> <p><input type="checkbox" name="item[]" value="3">項目3</p> <p><input type="checkbox" name="item[]" value="4">項目4</p> <p><input type="checkbox" name="item[]" value="5">項目5</p> <input type="submit" name="kakunin" value="確認"> </form> </body> </html>

  • checkboxについておしえてください

    <form action=" " method="post"> <input type="checkbox" name=" figure" value="1"><img src="a.png"> <input type="checkbox" name=" figure" value="2"><img src="b.png"> <input type="checkbox" name=" figure" value="3"><img src="c.png"> <input type="checkbox" name=" figure" value="4"><img src="a.png"> <input type="checkbox" name=" figure" value="5"><img src="b.png"> <input type="submit" value="送信する"> </form> とした場合に、絵の左にくるチェックボックスの位置を、添付した図のように位置を図の中にもってこれないかと考えています。できれば、大きさも変えたいと考えています。 cssでできるのでしょうか? cssじゃない方法などもあるのでしょうか?よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • [javascript] checkboxによる合計の算出と表示について

    こんにちわ。 表記についてですが、javascriptによるcheckboxのvalue値を算出させようと悪戦苦闘しております・・・。 皆様のお知恵を拝借できればと思います。 至らない部分が多々あると思いますが下記に現在のソースを貼り付けますので、色々とご指摘いただければ幸いです。 (リアルタイム表示のためprototypeを使用しています。) <head><script src="prototype.js" type="text/javascript"></script> <script language="javascript"> function mprice(){ chn = 6; ttl = 0; for(i=0; i<chn; i++) { if(document.step2.elements[i].checked==true) { var pttl = ttl + eval(document.step2.elements[i].value); } else if(typeof(pttl) == "undefined") pttl = 0; } document.getElementById('pttlr').innerHTML = pttl + "円" } </script> </head> <body> <form name="step2"> <input type="checkbox" value="105" id="food" onClick="mprice()">コーラ<br /> <input type="checkbox" value="315" id="food" onClick="mprice()">肉<br /> <input type="checkbox" value="1050" id="book" onClick="mprice()">参考書<br /> <input type="checkbox" value="210" id="sweet" onClick="mprice()">飴<br /> <input type="checkbox" value="525" id="book" onClick="mprice()">マンガ<br /> <input type="checkbox" value="3150" id="music" onClick="mprice()">CD<br /> </form> <div id="pttlr">

  • localStorageでのcheckbox制御

    下記サイトを参考に、テキストボックスとチェックボックスをlocalStorageに保存するプログラムを作ってみました。 http://jsdo.it/twi_masa/hx8D 質問ですが、チェックやテキストを書いて保存ボタンを押すとlocalStorageに値が保存されることはchromeのデベロッパーツールで確認しました。 値がある状態でロードを押すとその保存された状態に復元されますが、それをロードボタンを押さずにページが読み込まれた直後に表示させる方法が知りたいです。 window.onload = function(){ 処理 } だと思い、 load : functionをwindow.onload = functionへ単純に変更しましたが、それでは保存もロード出来なくなってしまいました。 自分では全く書けないので、出来ましたらソースを書いていただけるとありがたいです。 よろしくお願いします。 <table> <tr> <td>テキスト</td> <td><input type="text" id="text1" /></td> </tr> <tr> <td>チェックボックス</td> <td> <input type="checkbox" id="checkbox1" value="0">チェック1 <input type="checkbox" id="checkbox2" value="0">チェック2 </td> </tr> </table> <input type="button" value="保存" onclick="hx8D.save();"> <input type="button" value="ロード" onclick="hx8D.load();" /> <script> var hx8D = function(){ var HX8D = function(){}; HX8D.prototype = { save : function(){ var elements = document.getElementsByTagName("input"); for(var i=0; i<elements.length; i++){ var type = elements[i].type; var key = elements[i].id; if(type == "text"){ localStorage[key] = elements[i].value; }else if(type == "checkbox"){ localStorage[key] = elements[i].checked; } } }, load : function(){ var elements = document.getElementsByTagName("input"); for(var i=0; i<elements.length; i++){ var type = elements[i].type; var key = elements[i].id; if(type == "text"){ elements[i].value = localStorage[key]; }else if(type == "checkbox"){ elements[i].checked = localStorage[key] == "true" ? true : false; } } }, }; return new HX8D(); }(); </script>

  • チェックボックスのチェックについて

    submit時に一つでもチェックがなければアラートを表示 チェックがあれば進む・・・としたいです。 <form action=next.html name=form1> <input type=checkbox name=checkbox1 value=1> <input type=checkbox name=checkbox2 value=2> <input type=checkbox name=checkbox3 value=3> <input type=checkbox name=checkbox4 value=4> <input type=checkbox name=checkbox5 value=5> ~以下50まで続きます <input type=submit value=submit> </form> function countChecked(form1) { var total = 0; var max = 50; for (var index = 0; index < form1.checkbox.length; index++) { total += form1.checkbox[index].checked ? 1 : 0; } if(countChecked(document.form1)) > 0) { return true; } else { alert("no"); return false; } return(total); } 過去に似たような質問を参考に作ってみましたがダメでした。 チェックボックスの名前の付け方が悪いのでしょうか。

  • 大量のcheckboxにcheckedを入れる

    チェックボックスが50個あります。 送信ボタンを押して元のページを再度開きます。 そのときにチェックしたボックスにチェックを入れた状態にしたいです。 inputタグの中に<?php if(isset($checkbox2) && in_array('b2',$checkbox2)){echo ' checked';} ?>を入れていますが単調になってしまいます。 単調にならずにする方法はありますか? <input type="checkbox" name="chk1[]" value="a1" />の場合はインデックスが固定でないのでできませんでした。 その他いけない箇所があれば教えて下さい。 お願いします。 <?php if(isset($_GET["chk1"])){ $checkbox1 = $_GET["chk1"]; for($i=0; $i<sizeof($checkbox1); $i++){ print $checkbox1[$i]."<br />"; } } if(isset($_GET["chk2"])){ $checkbox2 = $_GET["chk2"]; foreach($checkbox2 as $key => $val){ print $val."<br />"; } } ?> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> </head> <body> <form method="get" action="checkbox.php"> <input type="checkbox" name="chk1[]" value="a1" /> <input type="checkbox" name="chk1[]" value="a2" /> <input type="checkbox" name="chk1[]" value="a3" /> <input type="checkbox" name="chk1[]" value="a4" /> <input type="checkbox" name="chk1[]" value="a5" /> <input type="checkbox" name="chk1[]" value="a6" /> <input type="checkbox" name="chk1[]" value="a7" /> <input type="checkbox" name="chk1[]" value="a8" /> <input type="checkbox" name="chk1[]" value="a9" /> <input type="checkbox" name="chk1[]" value="a10" /> <br /> <input type="checkbox" name="chk2['b1']" value="b1" <?php if(isset($checkbox2) && in_array('b1',$checkbox2)){echo ' checked';} ?>/> <input type="checkbox" name="chk2['b2']" value="b2" <?php if(isset($checkbox2) && in_array('b2',$checkbox2)){echo ' checked';} ?>/> <input type="checkbox" name="chk2['b3']" value="b3" <?php if(isset($checkbox2) && in_array('b3',$checkbox2)){echo ' checked';} ?>/> <input type="checkbox" name="chk2['b4']" value="b4" <?php if(isset($checkbox2) && in_array('b4',$checkbox2)){echo ' checked';} ?>/> <input type="checkbox" name="chk2['b5']" value="b5" <?php if(isset($checkbox2) && in_array('b5',$checkbox2)){echo ' checked';} ?>/> <input type="checkbox" name="chk2['b6']" value="b6" <?php if(isset($checkbox2) && in_array('b6',$checkbox2)){echo ' checked';} ?>/> <input type="checkbox" name="chk2['b7']" value="b7" <?php if(isset($checkbox2) && in_array('b7',$checkbox2)){echo ' checked';} ?>/> <input type="checkbox" name="chk2['b8']" value="b8" <?php if(isset($checkbox2) && in_array('b8',$checkbox2)){echo ' checked';} ?>/> <input type="checkbox" name="chk2['b9']" value="b9" <?php if(isset($checkbox2) && in_array('b9',$checkbox2)){echo ' checked';} ?>/> <input type="checkbox" name="chk2['b10']" value="b10" <?php if(isset($checkbox2) && in_array('b10',$checkbox2)){echo ' checked';} ?>/> <br /> <input type="submit" value="送信" /> </form> </body> </html>

    • 締切済み
    • PHP
  • checkboxの文字連結の方法を教えてください

    <INPUT name="ch" type="checkbox" value="1">1 <INPUT name="ch" type="checkbox" value="2">2 <INPUT name="ch" type="checkbox" value="3">3 <INPUT name="ch" type="checkbox" value="4">4 <INPUT name="ch" type="checkbox" value="5">5 選択してボタンを押すとチェックされた文字だけをカンマで連結して <a href="http://xxx.xx.ne.jp/xx.cgi?1,3,5">リンク</a> と表示したいのですがどのように書けばいいのでしょうか。 よろしくお願いします。

専門家に質問してみよう