• 締切済み

お問い合わせフォームを作成しているのですがジャバがうまく動いてくれません。

お問い合わせフォームを作成しているのですが(phpとscriptです)、 script部分がうまく動いてくれません。 必須項目が名前、ふりがな、ラジオボタンで選択項目3つあります。 名前、ふりがな部分を入力せずに送信を押すとアラートがなりますが、 ラジオボタン部分がIEでは一つも選択しないとアラートが正常に機能しますが、ファイヤーフォックスでは送信されてしまいます。 下記にscript部分をコピペしておきますのでお気づきの点がありましたら教えて下さい。 <script LANGUAGE="javascript"> function CheckInput(){ /*チェック項目*/ var object = document.form_1.name.value; if(object == ""){ alert("お名前を入力してください"); return false; } /*チェック項目*/ var object = document.form_1.furigana.value; if(object == ""){ alert("ふりがなを入力してください"); return false; } /*チェック項目*/ var check_flag = 0; //チェックボックスの配列の数だけループ(1個目の配列チェック) for(var i = 1 ;i <= 3 ;i++){ //1個以上のチェックがあればフラグを変更 if(document.all("renraku["+i+"]").checked == true){ check_flag = 1;} } //フラグが0なので1個以上のチェックが無い if(check_flag == 0){ alert("ご連絡方法を選択して下さい") return false; } } </script> また、script部分ではなく、他の原因等が考えられましたら教えていただきたく思います。 宜しくお願い致します。

みんなの回答

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

・document.allは方言 ・formに名前を付けて管理するのはNG それを踏まえてこんな感じで。 <script LANGUAGE="javascript"> function CheckInput(f){ var name = f.name.value; if(name == ""){ alert("お名前を入力してください"); return false; } var furigana = f.furigana.value; if(furigana == ""){ alert("ふりがなを入力してください"); return false; } var object = f.renraku; var check_flag = false; for(var i = 0 ;i <object.length ;i++){ if(object[i].checked) check_flag = true; } if(!check_flag){ alert("ご連絡方法を選択して下さい") return false; } return true } </script> <form onSubmit="return CheckInput(this)"> お名前:<input type="text" name="name"><br /> ふりがな:<input type="text" name="furigana"><br /> 連絡方法:<input type="radio" name="renraku" value="tel">電話 <input type="radio" name="renraku" value="mail">メール <input type="radio" name="renraku" value="norosi">のろし<br /> <input type="submit" value="GO!"> </form>

関連するQ&A