Почему event.ключ перестал работать внезапно?

#javascript #jquery

#javascript #jquery

Вопрос:

Я использовал event.key весь день, и теперь внезапно это дает мне undefined . Я на 100% уверен, что ранее сегодня он выдал мне нажатую клавишу. Есть идеи, что могло произойти или что-то не так с кодом?

$records_inputs это набор входных данных!

 $records_inputs.on("input", function(e) {

    var pattern_only_digits = /[0-9]/;
    var input_value = $(this).val();

    alert(e.which   " "   e.key   " "   e.keyCode);

    if (e.keyCode != 8 amp;amp; !pattern_only_digits.test(e.key)) {
        e.preventDefault();
    }

    console.log(e);

    //$(this).val(numberFormatFromString(removeDotsFromString(input_value)));

});
  

Комментарии:

1. используйте события нажатия клавиш

2. @PranavCBalan работает!! почему? можете ли вы объяснить?

Ответ №1:

which Свойство доступно только для событий клавиатуры, таких как keydown , keypress , или keyup события. Поэтому используйте эти события в соответствии с вашими потребностями, чтобы получить нажатую клавишу.

 $records_inputs.on("keypress", function(e) {
  

К вашему сведению: также предлагается использовать key свойство вместо which свойства, поскольку which оно устарело.

Доступные свойства InputEvent перечислены здесь.