- 締切済み
半角英数字のみの入力にエラーを返すには
運営しているサイトに設置したコメントフォームからスパムがたくさん送信されてきます。 その対策として、「氏名のよみがな」入力欄が半角英数字のみの入力の場合にはアラートを出して投稿できないようにしたいです。 下記のようなJSを使用していますが、 if (!kana) { alert('氏名のよみがなを入力してください。'); return false; } の部分を変更して「半角英数字しか入力されていない場合、アラートを返す」ようにするには、どうしたら良いでしょうか? htmlの文字コードはShift_JISです。 よろしくお願いします。 function postComment { var name = eval('document.name.value'); var kana = eval('document.kana.value'); var email = eval('document.email.value'); var comment = eval('document.comment.value'); sum++; if (!name) { alert('氏名を入力してください。'); return false; } else { if (!kana) { alert('氏名のよみがなを入力してください。'); return false; } else { if (!email) { alert('メールアドレスを入力してください。'); return false; } else { if (!comment) { alert('コメントを入力してください。'); return false; } else { var confirm_text = '以下の内容で送信します\n' + 氏名:' + name + '\n よみがな:' + kana + '\n メール:' + email + '\n 本文:' + comment; if (!confirm(confirm_text)) { return false; } else { alert('コメントを送信しました。'); } } } } } }
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- yambejp
- ベストアンサー率51% (3827/7415)
kanaの値をチェックするならこんな感じになりますがわかりますか? <script> function check(){ var kana=document.getElementById("kana"); var flg=true; if(kana.value.match(/^[0-9a-z]*$/i)) flg=false; alert(flg); } </script> <input type="text" name="kana" id="kana"> <input type="button" value="check" onclick="check()">
- mindatg
- ベストアンサー率48% (110/227)
ググってサンプルも見つけました。5秒も掛かってません。 http://www.kanaya440.com/contents/tips/javascript/007.html コードを清書しろっていうなら私はパスで。
お礼
教えていただいたURLの内容は、初心者の私には少し難しいみたいです。 それなりに検索はしていたのですが、そのまま現行のコードに応用できる形で探していたので・・ すみません。ありがとうございました。
お礼
functionを分ける(?)のがわからなかったので、 いただいた回答を参考に、 if (!kana) { alert('氏名のよみがなを入力してください。'); return false; } ↓ if (kana.match(/^[0-9a-z]*$/i)) { alert('氏名のよみがなを入力してください。'); return false; } これでいけました! どうもありがとうございました!