ユーザーにアルファベットのみの入力を許可したい。しかしボタンはHome
、End
、Backspace
、Delete
およびArrow keys
テキストボックス内で動作する必要があります。
これを実現するために、次のjQueryコードを記述しました。
正規表現^[a-zA-Z]*$
はChromeでは正常に機能しますが、MozillaFireFoxでは機能しません
$('#Firstname').bind('keypress', function (e) {
var regex = new RegExp("^[a-zA-Z]*$");
var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
if (regex.test(str)) {
return true;
}
return false;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="Firstname" type="text"/>
ありがとうございました
Mozillaのドキュメントによると、KeyboardEvent.charCode
とKeyboardEvent.which
は両方とも非推奨です(非標準charCode
と見なされます)。
のドキュメントにKeyboardEvent.charCode
は、次のメッセージが含まれています
のドキュメントにKeyboardEvent.which
は、次のメッセージが含まれています
$('#Firstname').bind('keypress', function (e) {
var regex = new RegExp("^[a-zA-Z]*$");
if (regex.test(e.key)) {
return true;
}
return false;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="Firstname" type="text"/>
私は次のブラウザで答えをテストしました。それぞれが機能します:
また、ブラウザの互換性については、Mozillaのドキュメントを参照してくださいKeyboardEvent.key
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加