- 締切済み
アラートを出したいのですが・・
以下のような感じでラジオボタンのリンクで、何も選択していない状態でGOボタンを押すと アラートが出るようにしたいのですが、どうしたらよいのかわからなくて困っています。 できれば、フルーツを選んでない場合は「フルーツを選んでください」と、価格を選んでない場合は 「価格を選んでください」と、両方選んでない場合は上記の2つとも出るようになれば理想なんですけど・・・ どうか宜しくお願い致します。m(_ _"m)ペコリ <script language=javascript> <!-- window.onload = function(){ document.forms[0]["GO"].onclick = function(){ var fruits2 = document.forms[0]["fruits"]; var price2 = document.forms[0]["price"]; function getCheckedElement(nl){ for(var i=0;i<nl.length;i++){ if(nl[i].checked) return nl[i]; } } var fruits = getCheckedElement(fruits2).value; var price = getCheckedElement(price2).value; URL = '/' + fruits + '/' + price; window.location = URL; } } --> </script> <form action="javascript:void(0)"> <input type="radio" name="fruits" value="APPLE">リンゴ<br> <input type="radio" name="fruits" value="ORANGE">ミカン <BR><BR> <input type="radio" name="price" value="100.html">100円均一商品<BR> <input type="radio" name="price" value="300.html">300円均一商品<BR> <input type="radio" name="price" value="500.html">500円均一商品<BR> <BR><BR> <input type="button" value="GO" name="GO" onclick="check()"> </form>
- みんなの回答 (2)
- 専門家の回答
みんなの回答
アラートはあまり使わない方が良いと思います。 使用者に負担をかけます、特にお客さんならなおさらです。 それよりも、checked で、デフォルトの飛び先を一つ選んでおく方が良いかと思います。 <script language=javascript> <!-- function check(){ if(document.form.fruits[0].checked==true){ fruit="apple";} else{ fruit="orange" } for(i=0; i<3; i++){ if(document.form.price[i].checked==true){ price=document.form.price[i].value; }} location.href=(fruit+"/"+price); } --> </script> <form name="form"> <input type="radio" name="fruits" value="APPLE" checked>リンゴ<br> <input type="radio" name="fruits" value="ORANGE">ミカン <BR><BR> <input type="radio" name="price" value="100.html" checked>100円均一商品<BR> <input type="radio" name="price" value="300.html">300円均一商品<BR> <input type="radio" name="price" value="500.html">500円均一商品<BR> <BR><BR> <input type="button" value="GO" name="GO" onclick="check()"> </form>
- tokimoma90
- ベストアンサー率25% (34/135)
とりあえずアラートのところだけ。 onloadは不要だと思います・・・ function check(){ if (document.forms[0].fruits[0].checked == false && document.forms[0].fruits[1].checked == false) { alert("フルーツを選んでください"); } if (document.forms[0].price[0].checked == false && document.forms[0].price[1].checked == false && document.forms[0].price[2].checked == false) { alert("価格を選んでください"); } //入力チェックを通過した後の処理をここから書く } ※falseの前はイコールを2個入力してください。 このフォントだと"=="が見づらいので。
お礼
早速のご回答、誠にありがとうございます。 まさにこれがやりたかった事です。 勉強になりました。ありがとうございました。m(._.*)mペコッ
補足
すみません・・・一度は成功か!とおもって調子に乗ってました・・・再度色々試してみたところ、 普通に選択した場合2回送信ボタンを押さないと送信できないようになってました・・ 何がいけないんでしょうか(T^T) また、1度アラートが表示された後、入力不備がある場合はまたアラートが出るようにしたいんです・・・ どうか宜しくお願いしますm(._.*)m
お礼
ご回答、誠にありがとうございます。 確かにそうですね、アラートはなんだか嫌な気分になりますもんね。 先にチェックをつけて置く事を、全く考えてなかったです。(^。^;) 参考にさせて頂きますね。ありがとうございました。