プロが教えるわが家の防犯対策術!

フォームに入力されたくない文字をJavaScriptで制御したいのですが、どなたか宜しくお願いします。

例えば、名前入力欄<input type="text" name="name">に『♪』や『★』などと、『up』『新作』など特定の文字が入っている場合は送信(submit)できないようにしたいのですが、どのように書けばよいでしょうか。

どうぞ宜しくお願いいたします。

A 回答 (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>
    • good
    • 0
この回答へのお礼

詳しく教えていただきありがとうございます。

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

お礼日時:2009/02/02 17:43

考え方が2つあります。



ひとつはブラックリスト方式、だめな文字がはいっていたらエラーにする
もうひとつはホワイトリスト方式、許可した文字以外がはいっていたらエラーにする

いずれにしてもjavascriptでエラーにしても、原則おまじない程度なので
入力チェックに関してはあまり期待しない方がよいでしょう。

submitしない方法はsubmitボタンのonclickかフォームのonsubmitに
return falseするとよいでしょう
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!