2016-12-16 2 views
1

Моего яваскрипта кода отключить десятичные в текстовом поле IX, как этотKeyCode принимает неправильно в Mozilla

$(document).ready(function() { 
    $(".money-input").keypress(function (e) { 
     // between 0 and 9 
     if (e.which < 48 || e.which > 57) { 
      alert(1); 
      showAdvice(this, "Integer values only"); 
      return (false); // stop processing 
     } 
    }); 

    function showAdvice(obj, msg) { 
     $("#singleAdvice").stop(true, false).remove(); // remove any prev msg 
     $('<span id="singleAdvice" class="advice">' + msg + '</span>').insertAfter(obj); 
     $("#singleAdvice").delay(4000).fadeOut(1500); // show for 4 seconds, then fade out 
    } 
}); 

Это отлично работает в Chrome. Но когда я иду в Mozilla. Обратное пространство alos попадает в этот случай. Поэтому, когда я нажимаю обратно, ничего не происходит, и отображается сообщение об ошибке. Может ли кто-нибудь указать, что я делаю неправильно?

+0

что на самом деле вы хотите? –

ответ

1

keypress событие не срабатывает для непечатаемых символов, как Esc, Ctrl, Сдвиг, и в вашем случае, забой.

Использование keyup() вместо:

$(".money-input").keyup(function(e) { 
    if (e.which < 48 || e.which > 57) { 
     showAdvice(this, "Integer values only"); 
     return false; 
    } 
}); 

Example fiddle

+0

Я хочу отключить десятичные значения внутри этого текстового поля, как я сделал в своем исходном коде. но с вашим кодом этого не происходит – Athul

+0

Ну, это уже было решено в [этом вопросе] (http://stackoverflow.com/questions/7279047/how-to-prevent-user-from-entering-decimals), который, кажется, источник кода у вас есть –

+0

Да, но они решили его с помощью события Keypress и который делает новую проблему в Mozilla. Теперь то, что я пытаюсь сделать, - это сделать десятичную деактивацию, и то же время backspace также работает, не так ли, чтобы это сделать? – Athul