ik имеют вход, где должен быть проверен zipcode. Это то, что у меня есть на данный момент.
$("input[id='postal']").keyup(function count() {
var zipcodeValue = this.value;
zipcodeCheck = zipcodeValue.split(" ").join("");
var regex = new RegExp(/^[0-9]{4}[a-z]{2}$/i);
if (regex.test(zipcodeCheck) == true) {
// something
} else {
// something else
}
});
Это работает, но я хочу отключить пользователя для ввода более четырех цифр. Почтовый индекс должен быть таким, как 1234AB или 1234 AB, но не 12345B.
Могу ли я удалить пятый/шестой номер, когда набирается клавиатура?
спасибо
Что об этом - http://jsfiddle.net/bS9Q8/
$("#postal").keydown(function(e) {
var zipcodeValue = this.value + String.fromCharCode(e.keyCode);;
if (zipcodeValue.length<5) { return true;}
var regex = new RegExp(/^[0-9]{4}[a-z]{2}$/i);
if (zipcodeValue.length==5) {
regex = new RegExp(/^[0-9]{4}[a-z]{1}$/i);
}
if (regex.test(zipcodeValue) != true) {
return false;
}
});
Попробуйте запустить событие keydown
$("input[id='postal']").keydown(function (event) {
var zipcodeValue = this.value;
zipcodeCheck = zipcodeValue.split(" ").join("");
var regex = new RegExp(/^[0-9]{4}[a-z]{2}$/i);
if (regex.test(zipcodeCheck) == true) {
// something
} else {
// something else
return false;
}
});
keydown
иreturn false
если пользователь ввел пятое число (сосчитайте уже набранные цифры. Если пользователь набрал четыре цифры, а нажатая тоже цифра, верните false)