то, что я пытаюсь сделать, - это простое поле формы для ввода почтового номера, которое позволяет вводить максимум 4 цифры.
Проверьте мой jsfiddle. Он работает нормально, единственная проблема заключается в том, что когда внутри полные 4 цифры и текст внутри выбран, я не могу переопределить его при вводе числа, мне нужно сначала нажать удалить, а затем вставить числа
и другое, не имеющее отношения к делу, как я могу запретить пользователю вводить 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;
});
});
Он работает почти идеально ... единственная проблема заключается в том, что пользователь ЧАСТИЧНО выбирает текст внутри поля ввода (например, последние две цифры ... чем он не может начать писать с нуля, но это должно быть возможно, так как он вставляет в третья буква а не в начале