• ベストアンサー

フォームについて

お世話になります。 フォームについての質問なんですが、例えば、↓のようなフォームがあったとします。 <form> <input type="radio" name="sample" value="同意する">同意する <input type="radio" name="sample" value="同意しない">同意しない <input type="button" value="同意して申し込む" onClick="location.href='http://www.google.co.jp/'"> </form> このフォームは「同意する」「同意しない」の選択にかかわらず、「同意して申し込む」をクリックすればgoogleのトップページが開きます。これを、「同意する」を選択していないと、googleのトップページが開かないようにしたいのです。「同意しない」が選択されていたら、動作しないようにしたいです。分かりにくい説明かもしれませんが、どうぞよろしくお願いします。

  • HTML
  • 回答数3
  • ありがとう数3

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

  • ベストアンサー
  • Kaone
  • ベストアンサー率60% (33/55)
回答No.3

#1です。 2番さんの指摘があったので少々ソースを変えました。 ちなみに補足するとHTMLではフォームに名前をつけてもかまいませんがXHTMLだとダメです。 だから非推奨と言うことになっています。 そのかわり、フォームには、idをつけることは認められていて 代わりに以下のように出来ます。 ちなみに、javascriptを使用したタグは現在携帯では使えません。 <form id="formname"> <input type="radio" name="sample" value="同意する">同意する <input type="radio" name="sample" value="同意しない">同意しない <input type="button" value="同意して申し込む" onClick=" if( document.getElementById('formname').sample[0].checked ){ alert('同意したのでグーグルページへいきます。'); location.href='http://www.google.co.jp/'; }else if( document.getElementById('formname').sample[1].checked ){ alert('同意しなかったのでヤフーページへいきます。'); location.href='http://www.yahoo.co.jp/'; }else{ alert('同意するか、同意しないのどちらかを選択してね'); } "> </form>

shinya1980
質問者

お礼

回答ありがとうございます。 お陰様で、自分の思うようにいきました。 携帯では使えないとのことなので、ラジオボタンをなくし、通常のボタンにリンクを設定することで対処しました。 本当にどうもありがとうござました<(_ _)> また、困ったことがあったらお助け下さい。それでは。

その他の回答 (2)

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

formにnameをつけるのは非推奨 こんな風にしてみてください <form> <input type="radio" name="sample" value="同意する" onclick="this.form.google.disabled=false" id="sample_yes"><label for="sample_yes">同意する</label> <input type="radio" name="sample" value="同意しない" onclick="this.form.google.disabled=true" id="sample_no"><label for="sample_no">同意しない</label> <input type="button" id="google" value="同意して申し込む" onClick="location.href='http://www.google.co.jp/'" disabled> </form>

shinya1980
質問者

お礼

回答して頂いてどうもありがとうございます。 返事が遅くなって申し訳ありません。 なるほど、同意するを選択している時は「同意して申し込む」がクリックできて、していない時はクリックできない。これは便利ですね。ですが、同意するを選択した状態で「同意して申し込む」をクリックしても反応しません。私の間違いだったら申し訳ないです。 それから、このフォームタグは携帯でも使えるのでしょうか? お手数ですが、どうぞよろしくお願いします。

  • Kaone
  • ベストアンサー率60% (33/55)
回答No.1

<form name="formname"> <input type="radio" name="sample" value="同意する">同意する <input type="radio" name="sample" value="同意しない">同意しない <input type="button" value="同意して申し込む" onClick=" if( document.formname.sample[0].checked ){ location.href='http://www.google.co.jp/'; }else{ location.href='http://www.yahoo.co.jp/'; } "> </form> 上の例では、同意を選択しているときはgoogle 同意しないを選択しているときは、yahooに行くようになっています。 説明すると まずフォームに名前をつけます。 <form name="formname"> 次にRADIOぼたんがありますが、そのまま <input type="radio" name="sample" value="同意する">同意する <input type="radio" name="sample" value="同意しない">同意しない としていますが、valueは別に設定しなくてもいいでしょう。 次にonclick時の処理ですが if( document.formname.sample[0].checked ){ もし、 document(ホームページの) formname(というフォームの)sample(というコントロール、ボタンやエディット等)[0]というのは、0番目、一番最初がチェックされていたらという意味です。 なぜ[0]がいるかというと sampleという名前のボタンが二つあるからです。 で[0]で最初の同意するという部分だけ調べています。 気づいたと思いますが、このスクリプトだと、同意するも、同意しないもチェックされていないとき、同意しないの処理になります。 何も押してないなら、押せとメッセージを表示する為には、下記のようになります。 if( document.formname.sample[0].checked ){ //0番目のsampleがチェックされている場合ここの処理が行われます。    location.href='http://www.google.co.jp/'; }else if( document.formname.sample[0].checked ){ //1番目のsampleがチェックされている場合ここの処理が行われます。    location.href='http://www.yahoo.co.jp/'; }else{ //それ以外、すなわち、0番目も1番目もチェックされていない状態    alert('同意するか、同意しないのどちらかを選択してね'); }

shinya1980
質問者

お礼

回答して頂いてどうもありがとうございます。 返事が遅くなって申し訳ありません。 助言してくれた通りフォームタグを打ち込んで、サーバー上にUPして確認してみましたが、「同意して申し込む」をクリックしても反応しません。私の間違いだったら申し訳ないです。 それから、このフォームタグは携帯でも使えるのでしょうか? お手数ですが、どうぞよろしくお願いします。

関連するQ&A

  • jqueryとテキストの取得フォーム

    フォームのラジオボックスの値を文字列としてテキストボックスに入れたいと考えています。 jqueryを使ってif分岐で長いものは書けるのですがもっとスマートにかけないかと考えています。 バリューの値を取れればと思っているのですが具体的な方法が思い浮かびません。 どなたかJQUERYが得意な方がおられましたらご教授願えませんでしょうか。 宜しくお願いします。 <script> function check1(){ $("#text1").val("Tシャツ"); } function check2(){ $("#text1").val("ロングシャツ"); } ・ ・ ・ </script> <form id="cse-search-box" action="http://google.com/cse"> <input type="hidden" name="ie" value="UTF-8" /> 袖丈 <input type="radio" name="a" onclick="check1();" value="Tシャツ" >Tシャツ <input type="radio" name="a" onclick="check2();" value="ロングシャツ" >ロングシャツ <input type="radio" name="a" onclick="check3();" value="キャミソール" >キャミソール パンツ <input type="radio" name="b" onclick="check4() value="ショートパンツ" >ショートパンツ <input type="radio" name="b" onclick="check5() value="チノパンツ" >チノパンツ <input type="radio" name="b" onclick="check6() value="ジーンズ" >ジーンズ <textarea id="text1" name="q" size="31" /></textarea> <input type="submit" name="sa" value="Search" /> </form>

  • 他フォームの入力データの引継ぎ

    入力フォームを2つ用意し 第1フォームの入力欄の1部を第2フォームの入力欄のデータとして submitさせたいのですが <INPUT TYPE="radio">と<SELECT>の入力値がうまく引継げません。 下記のようなJavaスクリプトとHTMLなのですが Javaスクリプトで「value」を=にすると 「radio」のほうはundefin、 「SELECT」で複数選択した場合は、一つ目の選択肢のみしか 引継げませんでした。 Javaスクリプトでうまくいく方法がありましたら ご教示ください。 ----Javaスクリプト-------------------------------- function aaa() { document.FROM2.A.value = document.FROM1.A.value; document.FROM2.B.value = document.FROM1.B.value; document.FROM2.C.value = document.FROM1.C.value; document.FROM2.submit(); } ----HTML-------------------------------- <FORM NAME="FROM1" METHOD="POST" ACTION="***"> <SELECT NAME="A" MULTIPLE> <OPTION VALUE="aa">セレクトa <OPTION VALUE="bb">セレクトb <OPTION VALUE="cc">セレクトc <OPTION VALUE="dd">セレクトd </SELECT> <INPUT TYPE="radio" NAME="B" VALUE="" CHECKED>選択なし <INPUT TYPE="radio" NAME="B" VALUE="1" CHECKED>ラジオ1 <INPUT TYPE="radio" NAME="B" VALUE="2" CHECKED>ラジオ2 <INPUT TYPE="text" NAME="C"> <INPUT TYPE="text" NAME="D"> <INPUT TYPE="submit" NAME="OK_BTN" VALUE="OK"> </FORM> <FORM NAME="FROM2" METHOD="POST" ACTION="***"> <INPUT TYPE="hidden" NAME="A"> <INPUT TYPE="hidden" NAME="B"> <INPUT TYPE="hidden" NAME="C"> <INPUT type="button" onClick="JavaScript:aaa();" name="OK_BTN" value="OK"> </FORM>

  • フォームPOST後「戻る」時のチェック値の取得

    フォームでPOSTをしたあと、history.backや戻るボタンで戻ったときに、POST時に選択したラジオボタンのcheckedもfalseになってしまうのですが、チェックされているものを取得することはできるのでしょうか。 ■form部分 <form name="form1" method="post" action="..."> <input type="radio" name="radio1" value="1">1<br /> <input type="radio" name="radio1" value="2">2<br /> <input type="radio" name="radio1" value="3">3<br /> </form> ■JavaScript部分 var radio1 = document.form1.radio; for(var i=0;i<radio1.length;i++) { if (radio1[i].checked) { alert(i); } } このようなコードで、選択してPOST後、「戻る」で入力ページ表示時にJavaScriptを実行しても、 radio1[i].checkedは全てfalseになってしまいます。 また選択→POST→戻る→そのままPOSTとすると、選択したvalue値は正しくサーバーに送られます。 「戻る」でのページ表示時に選択したものを取得する方法があれば教示いただけますか。

  • 複数のテキストフォームに対しての出力

    javascriptを勉強中であり、至らぬ点があるかと思いますが質問させてください。 あるhtmlページに複数のテキストフォームがあり、そこにjavascript で for 文を使い 定型文の後に追番を付加したテキストを出力(表示)させたいと思っています。 個別のテキストフォームには出力ができるのですが、複数の指定となると イマイチわかりませんでした… (正しく動作しませんでした) 私の記述が悪いとは思いますが、どのように記述すればよいでしょうか? 知見をお借りできればと思います。 よろしくお願いいたします。 【希望】 サンプル1  テスト1 サンプル2  テスト2 サンプル3  テスト3 上記 ちなみに以下が抜粋構文です。 【html】 <input type="button" value="テストボタン" onclick="myTest()">   ←ここを押すとプログラム -省略- <form name="myForm1"> サンプル1  <input type="text" size="30" name="form1" value="" readonly><br> サンプル2  <input type="text" size="30" name="form2" value="" readonly><br> サンプル3  <input type="text" size="30" name="form3" value="" readonly><br> <input type="reset" value="クリア"> </form> 【javascript】 function myTest() { for (num = 1; num <=3; num++) { // document.myForm1.form1.value = "テスト" + num ; だったら表示できる document.myForm1.form[num].value = "テスト" + num ; } } ※「form[num]」の部分が悪いとは思っていますが…

  • 【フォーム】PHPで確認画面をだした後にボタンを

    ほぼ初心者のものです 下記のようなフォームをつくりました <form action="regist.php" method="post"> <input type="radio" name="08241" value="A11"/> <input type="radio" name="08241" value="B11"/> <input type="radio" name="08241" value="C11"/> <input type="radio" name="08241" value="D11"/> <input type="radio" name="08241" value="E11"/> <input type="radio" name="08241" value="F11"/> <input type="submit" value="登録する" /> そしてこれらを確認するためにregist.phpを作成し <table width="250" border="1"> <tr> <td width="250">選択したもの</td> </tr> <tr> <td><?php echo $_POST["08241"] ?></td> </tr> <tr> <td>●●●</td> と記載し、選んだものを表示できるようにしました ここからが皆様にお力を借りたいところなのですが フォームから「A11」が選択されて確認画面に「A11」と表示されたとき ●●●のところに下記のような情報を含んだボタンを表示させたいんです <form name="a11" action="/products/detail.php" method="post" > <input type="hidden" name="mode" value="cart" /> <input type="hidden" name="product_id" value="137" /> <input type="hidden" name="product_class_id" value="634" /> <input type="hidden" name="quantity" value="1" /><br /> <input type="submit" value="決定する" onClick="alert('選択しました')" /> </form> このボタン情報はA11~F11まであって、product_idやproduct_class_idは それぞれ異なっています どこかに一覧を作成しておいて form nameで一致したものを表示させるといった やり方なのかなとは思うのですが、その方法がわかりません PHPを使えばいいのかJavascriptがよいのかもあわせ、記述方法などをご教授いただけませんでしょうか? どうかよろしくお願いいたします

    • 締切済み
    • PHP
  • アンケートフォームの作り方

    アンケートフォームを作りたいのですが、以下のプログラムにおいてのoutput.php の作り方がわかりません。最終的には、アンケート結果を出力(最後の質問の見る回数に関しては、これまでの平均をだす)をしたいとおもっています。http://www.standpower.com/php_form.htmlを参考にしてつくってみたもののうまくいきません。というのも、そのページに書かれている質問は1つしかないので、今回のように3つ質問があるとどうすればいいのかわからないからです。どなたか教えていただけないでしょうか? <html> <body> <b>あなたの年齢を教えてください</b> <form method = "post" action = "output.php"><br> <input type = "radio" name = "toshi" value = "1" checked>10代<br> <input type = "radio" name = "toshi" value = "2" >20代<br> <input type = "radio" name = "toshi" value = "3" >30代<br> <input type = "radio" name = "toshi" value = "4" >40代<br> <input type = "radio" name = "toshi" value = "5" >50代<br> <input type = "radio" name = "toshi" value = "6" >60代<br> <input type = "radio" name = "toshi" value = "7" >70歳以上<br><br> <b>お昼によくみる番組は?</b><br> <input type = "radio" name = "type" value = "8" checked>ピンポ<br> <input type = "radio" name = "type" value = "9" >スクランブル<br> <input type = "radio" name = "type" value = "10" >笑っていいとも<br> <input type = "radio" name = "type" value = "11" >おもいっきりいいTV<br><br> <b>週に何回見ますか?</b><br> <input type = "text", name = "test_about_other" maxlength="100"><br><br> <INPUT TYPE="submit" VALUE="送信"> <INPUT TYPE="reset" VALUE="やり直し"<BR><BR> </form> </body> </html>

    • ベストアンサー
    • PHP
  • テキストフォームのチェックについて

    テキストファームの内容チェックについて教えてください。 下記コードで取得したURLをテキストフォームに表示させ「onclick」でiframeに画面を表示させています。 これを、テキストファームが書き換わった段階で、実行することは できないでしょうか? (テキストフォーム内のURLが書き換わったら、その内容をチェック して、iframeにそのURLの画面を表示する) <html> <form name="f1"> URL:<input type="text" name="url" size="60" value="" /> <input type="button" value="このURLへ移動" onclick="target_name=***.location.href=this.form.url.value"> </form> <script type="text/javascript"> function set_latlng() { document.f1.url.value="http://***.***.****" /script> 以上、宜しくお願い致します。

  • フォームの動作についてお願いします!

    <FORM NAME="form1"> <INPUT NAME="text1" TYPE="text"> <INPUT TYPE="button" value="表示" onclick="daialog()"> </FORM> <script language="JavaScript"> <!-- function daialog(){  alert(form1.text1.value) ; } --> </script> ----------------------------------- と上のようにテキストボックスの中身をアラートで返すスクリプトが あるのですが、検索ページ(google等)のようにボタンを押さずとも、 エンターキーを押せばdaialog()が呼びだされるようにするには どうすればいいでしょうか。。。 <FORM>に関係がありそうなのでJavaScriptのカテゴリにじゃないかも しれませんが、どなたかよろしくお願いします!!

  • Firefoxのdisabledプロパティのバグ?

    複数のラジオボックスがあり、すべてのラジオボタンで 「YES」がチェックされた時にだけ、submitボタンが 有効になるようJavaScriptで制御できればと思ってます。 素人ながら以下のようなJavascriptにしたところ、 IEやSafari、Chromeでは意図した通り動作しましたが、 ただFirefoxのみボタンがdisabledになったまま有効になりませんでした。 解決策がわかる方がいらっしゃればご教授お願いできればと思います。 よろしくお願い致します。 <script type="text/javascript"> <!-- function check() { if (form1.radio1[0].checked && form1.radio2[0].checked && form1.radio3[0].checked) { form1.send.disabled = false; } else { form1.send.disabled = true; } } ; //--> </script> <form name="form1"> <input type="radio" name="radio1" value="1" >YES <input type="radio" name="radio1" value="2">NO <input type="radio" name="radio2" value="1">YES <input type="radio" name="radio2" value="2">NO <input type="radio" name="radio3" value="1" onClick="check()">YES <input type="radio" name="radio3" value="2">NO <input type="button" name="send" value="GO" onclick="location.href='hogehoge.html'" disabled="disabled"> </form>

  • 動画の入れ替えについて

    お世話になります 以下のような画像入れ替えを使ってフラッシュなどの動画入れ替えは可能なのでしょうか 宜しくお願いします <SCRIPT LANGUAGE="JavaScript"> <!-- JavaScript非対応ユーザーの為に function irekaeA(){ if (document.form1.pars[0].checked){ document.parsga.src="3-1.jpg" }else{ if (document.form1.pars[1].checked){ document.parsga.src="3-2.jpg" }else{ if (document.form1.pars[2].checked){ document.parsga.src="3-3.jpg" }else{ if (document.form1.pars[3].checked){ document.parsga.src="3-4.jpg" }else{ if (document.form1.pars[4].checked){ document.parsga.src="3-5.jpg" }else{ document.parsga.src="3-6.jpg" } } } } } } // --> </SCRIPT> <FORM NAME="form1"> <INPUT TYPE="radio" NAME="pars" VALUE="pars1"onclick="irekaeA()" CHECKED>sample1 <INPUT TYPE="radio" NAME="pars" VALUE="pars2"onclick="irekaeA()">sample2 <INPUT TYPE="radio" NAME="pars" VALUE="pars3"onclick="irekaeA()">sample3 <INPUT TYPE="radio" NAME="pars" VALUE="pars4"onclick="irekaeA()">sample4 <INPUT TYPE="radio" NAME="pars" VALUE="pars5"onclick="irekaeA()">sample5 <INPUT TYPE="radio" NAME="pars" VALUE="pars6"onclick="irekaeA()">sample6 </FORM><BR> <IMG SRC="3-1.jpg" NAME="parsga" width="550" height="405">

専門家に質問してみよう