質問: サイトの入力チェックについての質問です。 で 名前(name="lname")と連絡方法のチェックボックス(name="chuusi") が記入(=入力)されていなかったら、 アラームを出して、各入力フィールドに戻れ、 とい処理にしたいのですが、うまく書けません。 test01.html→test01.php と展開します。(伺いたいのはtest01.htmlだけです) test01.htmlのソースは test01.phpのソースは です。 不都合・追加の部分を書いていただけると助かります。 よろしくお願いします。
回答: test01.html の問題点について指摘させていただきます。 1. 「●中止の場合の連絡方法」のチェックボックスにname属性が2つあります。 これは構文的におかしいのでどちらか、1つにする必要があります。 2. checkForm関数がどこからも呼ばれていません。 入力をチェックする処理がどこからも呼ばれていません。呼ばれていない処理は実行されません。 「同意して送信」ボタンで呼ぶようにして、サブミットはcheckForm関数の最後に書くとよいでしょう。 3. javascriptに問題があります。 3.1. 存在しないフォーム名が指定されています。 「var f = window.document.the_form;」としてありますが、「the_form」はhtml内に存在しません。 「the_form」の代わりにhtml内に記述してある「form1」を指定する必要があります。 3.2. チェックボックスのチェック状態を判定する方法が誤っています。 javascriptでチェックボックスのチェック状態を判定するにはchecked属性を利用します。 また、複数のチェックボックスは配列として扱われます。 3.3. 括弧の対応が合っていません。 最後のifの「}」が抜けているため、構文エラーが発生しています。構文エラーが存在するとjavascriptは動作しません。 4. まとめ それぞれの修正を行うと、以下のような内容になります ``` 7月セミナー申し込みフォーム ●お名前 ●中止の場合の連絡方法(2つまでお選びください) 電話 メール FAX 郵便 下記の個人情報の取扱いにご同意の上「同意して送信」ボタンを押してください。 ```