メールフォームチェック
フォームを要求されてるけど、1円も出してもらえないような案件で、
とにかくページを減らして、
PHPの方では確認画面を出さないで、送信させるだけとかそんな感じの用途で。
メモ。
HTML
<form name="form" action="form.php" method="post" onSubmit="return check()"> お問い合わせ内容を選択してください<br /> <ul> <li><input name="field1[]" value="問い合わせ内容1" type="checkbox"> <label>問い合わせ内容1</label></li> <li><input name="field1[]" value="問い合わせ内容2" type="checkbox"> <label>問い合わせ内容</label></li> <li><input name="field1[]" value="問い合わせ内容3" type="checkbox"> <label>問い合わせ内容3</label></li> <li><input name="field1[]" value="問い合わせ内容4" type="checkbox"> <label>問い合わせ内容4</label></li> </ul> お名前:<br /> <input name="name" type="text" /><br /> フリガナ:<br /> <input name="kana" type="text" /><br /> メールアドレス:<br /> <input name="email" type="text" /><br /> 電話番号<br /> <input name="phone" type="text" /><br /> 備考<br /> <textarea name="comment" cols="50" rows="10"></textarea> <br /> <input name="submit" type="submit" id="submit" value="送信" /> </form>
JS
function check(){ var flag = 0; var errorMes = new Array(); var chkCount = 0; for (var ii=0;ii<document.form.elements['field1[]'].length;ii++){ if ((document.form.elements[ii].name=='field1[]') && (document.form.elements[ii].checked)) { chkCount ++; } } if(chkCount==0){ // 「お問い合わせ内容」の選択をチェック flag = 1; errorMes.push("お問い合わせ内容を選択してください。\n"); } if(!document.form.name.value){ // 「お名前」の入力をチェック flag = 1; errorMes.push("お名前をご入力ください。\n"); } if(!document.form.kana.value){ // 「フリガナ」の入力をチェック flag = 1; errorMes.push("フリガナをご入力ください。\n"); } if(!document.form.email.value){ // 「メールアドレス」の入力をチェック flag = 1; errorMes.push("メールアドレスをご入力ください。\n"); }else{ str = document.form.email.value; var tmp = str.match("^[0-9A-Za-z._-]+@[0-9A-Za-z.-]+$"); if (!tmp){ flag = 1; errorMes.push("メールアドレスをご確認ください。\n"); } } if(!document.form.phone.value){ // 「電話番号」の入力をチェック flag = 1; errorMes.push("電話番号をご入力ください。\n"); } if(!document.form.comment.value){ // 「備考」の入力をチェック flag = 1; errorMes.push("備考ご入力ください。\n"); } // 設定終了 if(flag){ var n = errorMes.length; var errorStr =""; for(i=0;i<n;i++){ errorStr+= errorMes[i]; } window.alert(errorStr); // 入力漏れがあれば警告ダイアログを表示 return false; // 送信を中止 }else{ return true; // 送信を実行 } }
こんなんでいいのだろうか?