私がしようとしているのは、郵便番号入力用の単純なフォーム フィールドで、最大 4 桁の入力が可能です。
私のjsfiddleをチェックしてください。それは正常に動作します。唯一の問題は、完全な4桁の数字があり、内部のテキストが選択されている場合、数字を入力するときにそれを上書きできないことです。最初に削除を押してから数字を挿入する必要があります
もう 1 つは、重要ではありませんが、ユーザーが最初の数字として 0 (ゼロ) を入力できないようにするにはどうすればよいですか?
私はクンダンの解決策を使用し、(私の意見では)ゼロ問題を導くためのより良い解決策を追加しました:
$(document).ready(function(){
var IsSelect = false;
$('#fld_1').select(function(){
IsSelect = true;
}).keypress(function (event){
if( event.which==8 || event.which==0 || event.which == 27) return true;
if($(this).val().length > 3 && !IsSelect) return false;
if(IsSelect && event.which == 48) return false;
if($(this).val().length == 0 && event.which == 48) return false;
var regex = new RegExp("^[0-9]");
var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
if (!regex.test(key)) {
event.preventDefault();
return false;
}
IsSelect = false;
});
});
それはほぼ完全に機能します...唯一の問題は、ユーザーが入力ボックス内のテキストを部分的に選択する場合です(たとえば、最後の2桁...ゼロで書き始めることはできませんが、先頭ではなく 3 番目の文字