質問: javascriptのフォームの質問をいくつかさせてください。 1.「申込(チェックをお入れください)※」 (新入、相談に5つのチェックボックスがあります) Q:このうちの1つもチェックがついていない時、 alert(どれか1つは選んでください)を出す。 2.「申請しますか?※」のうち、申請する、申請しない のどちらかにチェックを入れるのを必須とする。 さらに 「申請する」にチェックが入った場合、 会員番号を入力必須とする。 以上1,2を function checkForm() に記述してください。 3.入力が終わったら、「同意して送信」ボタンをクリックすると check.php に飛ぶ。 注1:フォームは ソースは 注2:check.php はザックシ書いてあるだけです。 このフォームが終わったら考えますが、index03.htmlと同じフォルダーに アップしてあります。 一応ソースは です。
回答: こんな感じになると思います。 f.submit() の前に、コードを足してます。 ``` function checkForm() { var f = window.document.form1; ... //ここから //申込 { var courses = document.getElementsByName("course[]"); var checked = 0; for (var i = 0 ; i < courses.length ; ++i) { if (courses[i].checked) { checked += 1; } } if (checked == 0) { alert("コースのどれかを、最低ひとつは選んでください"); // ちょっと文言を変えてます return false; } } // 申請する/しない { var fps = document.getElementsByName("fp"); if (! fps[0].checked && ! fps[1].checked) { alert("「申請する/しない」のどちらかを選んでください"); return false; } if (fps[0].checked) { if (f.kaiin_id.value == "") { alert("会員番号を入力してください"); return false; } if (! /^[A-z0-9]+$/.test(f.kaiin_id.value)) { alert("会員番号は、半角英数字で入力してください"); return false; } } } //ここまで f.submit(); } ``` 会員番号は半角英数字のみ、とあるので、そのチェックも足してみました。 ime-mode は disabled になってますが、コピペで全角を貼り付けられるので。