Вот мой код, и он использует клиентскую библиотеку asp.net ajax для добавления обработчиков событий
function IsDigit(id) { //short variable,args name for best minification
if ($get(id)) {
var v = function (e) {
var r = /\d/;
if (!r.test(String.fromCharCode(e.keyCode))) e.preventDefault();
}
$addHandlers($get(id), {
keydown: v
});
}
}
$get(ID)
получает контроль с идентификатором
$addHandlers
добавляет событие Обработчики в элемент управления. Здесь я прикрепляю его к элементу управления с идентификатором id
. Все это хорошо работает, текстовое поле принимает только числовой ввод, но проблема в том, когда он хочет удалить все числовые значения и хочет ввести некоторые другие числа. Так что-то вроде [SHFT + HOME], а затем удалить, [Удалить] не работают. Пожалуйста, может кто-нибудь улучшить код лучше. Также Keydown оптимален для такой работы
Я временно решил это, выполнив это, но это позволяет неожиданным символам на короткую секунду затем удалить его
function IsDigit(id) { //short variable,args name for best minification
if ($get(id)) {
var p = "";
var v = function (e) {
var r = /^\d*$/;
if (r.test(this.value)){p = this.value;} else {this.value=p;}// e.preventDefault();
}
$addHandlers($get(id), {
keyup: v
});
}
}