長さが0の場合、ユーザーがaz AZ 0-9以外を入力できないようにするこのコードがあります。特殊文字の入力が許可されていないことをユーザーに警告したいと思います。問題は、スペースを押すと、アラートが表示されて一瞬のうちに消えてしまうことです。コードの何が問題になっていますか?
$('#value').bind('keypress', function(e) {
if($('#value').val().length == 0){
if (e.which == 32){//space bar
e.preventDefault();
}
if (e.which < 48 ||
(e.which > 57 && e.which < 65) ||
(e.which > 90 && e.which < 97) ||
e.which > 122) {
e.preventDefault();
alert("Not allowed");
}
}
});
<input type="text" id="value" />
デモはこちら