Вот скрипт в jQuery, который я делал для чего-то очень похожего. Он действительно использует onkeyup
для установки значения; он также использует onkeydown
для предотвращения нечисловых значений; и заставляет значение по умолчанию 0
, если пользователь пытается оставить текстовое поле без значения:
var updateUI = function(value) {
//set gauge
};
var textbox = $('#id_of_textbox)'
textbox.keydown(function(e) {
return validNumberKeys.indexOf(e.which) > -1;
}).keyup(function(e) {
var input = $(e.target);
if(input.val() !== '') {
updateUI(input.val());
}
}).blur(function(e) {
var input = $(e.target);
if(input.val()==='') { input.val('0'); }
updateUI(input.val());
});
var validNumberKeys = [8,9,13,16,17,18,35,36,37,38,39,40,45,46,48,49,50,51,52,53,54,55,56,57,96,97,98,99,100,101,102,103,104,105];