• 締切済み

半角英数字のみの入力にエラーを返すには

運営しているサイトに設置したコメントフォームからスパムがたくさん送信されてきます。 その対策として、「氏名のよみがな」入力欄が半角英数字のみの入力の場合にはアラートを出して投稿できないようにしたいです。 下記のような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('コメントを送信しました。'); } } } } } }

みんなの回答

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

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()">

tigerlilyx
質問者

お礼

functionを分ける(?)のがわからなかったので、 いただいた回答を参考に、 if (!kana) { alert('氏名のよみがなを入力してください。'); return false; } ↓ if (kana.match(/^[0-9a-z]*$/i)) { alert('氏名のよみがなを入力してください。'); return false; } これでいけました! どうもありがとうございました!

  • mindatg
  • ベストアンサー率48% (110/227)
回答No.1

ググってサンプルも見つけました。5秒も掛かってません。 http://www.kanaya440.com/contents/tips/javascript/007.html コードを清書しろっていうなら私はパスで。

tigerlilyx
質問者

お礼

教えていただいたURLの内容は、初心者の私には少し難しいみたいです。 それなりに検索はしていたのですが、そのまま現行のコードに応用できる形で探していたので・・ すみません。ありがとうございました。