• ベストアンサー

input type="text"内の禁止語について教えてください。

フォームに入力されたくない文字をJavaScriptで制御したいのですが、どなたか宜しくお願いします。 例えば、名前入力欄<input type="text" name="name">に『♪』や『★』などと、『up』『新作』など特定の文字が入っている場合は送信(submit)できないようにしたいのですが、どのように書けばよいでしょうか。 どうぞ宜しくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

submitボタンを押した時にチェックするならこんな感じ? javascriptなので、ユーザがオフにしている場合もある。 <html> <head> <script type="text/javascript"> function hoge() { var prohibit='♪,★,up,新作'.split(','); var v=document.getElementById('fuga').value; var flg=true; for (var i=0; i<prohibit.length; i++){ if (v.indexOf(prohibit[i])>-1) {flg=false; break;} } if (!flg) alert('「'+prohibit[i]+'」があるからダメ'); return flg; } </script> </head> <body> <form method="POST" action=""> <input type="text" name="name" id="fuga"><br> <input type="submit" value="送信" onclick="return hoge()"> </form> </body> </html>

lienclothe
質問者

お礼

詳しく教えていただきありがとうございます。 現在は、javascriptをオフにしている方は少ないと思いますので 教えていただいたもので思うようにできました。

その他の回答 (1)

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

考え方が2つあります。 ひとつはブラックリスト方式、だめな文字がはいっていたらエラーにする もうひとつはホワイトリスト方式、許可した文字以外がはいっていたらエラーにする いずれにしてもjavascriptでエラーにしても、原則おまじない程度なので 入力チェックに関してはあまり期待しない方がよいでしょう。 submitしない方法はsubmitボタンのonclickかフォームのonsubmitに return falseするとよいでしょう

関連するQ&A