2014-06-27 5 views
0

У меня есть HTML-форма, в которой мне нужно разрешить только числовое нажатие клавиши. Для этого я использовал следующий код неправильный код ключа ASCII для ключа удаления

 
    $(".span8").keypress(function(e) 
    { 
     var unicode=e.charCode? e.charCode : e.keyCode 
    //alert(unicode); 
    if ((unicode ==8) || (unicode==9)|| (unicode==46)){ 
     //if the key isn't the backspace key (which we should allow) 
    } 
    else 
    { 
     if (unicode<48||unicode>57&&unicode!=65) //if not a number 
     return false //disable key press 
    }

});

, но здесь, если я тестирую код ключа, я получаю значение как 46 для ключа удаления. 46 для точки (- период) Другие значения верны. Я не могу найти, не ошибся ли я. Пожалуйста, помогите

+2

проверить это: http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes – Amit

+0

HTTP: //www.javascriptkit .com/javatutors/javascriptkey2.shtml – Sasi

+0

спасибо @Sasi. Код помог мне !!! – user3758868

ответ

3

Я нашел это странное поведение и с функцией keypress.

Вместо этого, попробуйте следующее:

jQuery(function($) { 
    var input = $('.span8'); 
    input.on('keydown', function() { 
    var key = event.keyCode || event.charCode; 

    if(key == 8 || key == 46) 
     //Do something when DEL or Backspace is pressed 
    }); 
}); 
+0

Спасибо @Jakob ,,, Используя keydown, отсортировал мою проблему на самом деле. Но почему keydown и keypress дают разные результаты? – user3758868

+0

Я объяснил это [здесь] (http://stackoverflow.com/a/18864466/2518317), а другой также [делает ссылку] (http://stackoverflow.com/a/1445228/2518317) относительно того, почему значения разные – Hashbrown

 Смежные вопросы

  • Нет связанных вопросов^_^