Проверьте значение нажатия клавиши после события нажатия клавиши, чтобы предотвратить нажатие клавиши - PullRequest
0 голосов
/ 23 ноября 2018

Я использую следующий код для проверки редактируемой ячейки td, если значение внутри больше 99 (значение после ввода нового числа).

$(document).on('keydown',"#checkvaluenumber", function (e) { 
   if( $(this).html() > 99) {    
     e.preventDefault();
}
    });

из-за события нажатия клавиши тестовое значение является значением до события нажатия клавиши.Я знаю, что могу перейти к keyup, чтобы оно использовало значение после ввода новой цифры, но я хотел бы предотвратить любое число, превышающее 99, и ничего не мешает с помощью метода "keyup".Любые решения?

С наилучшими пожеланиями и заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 23 ноября 2018

Я нашел эту скрипку: http://jsfiddle.net/EBs33/1/, и она отлично работает!

Но я добавил код в поле td, и его реакция все еще слишком поздняя.поэтому он проверяет значение, которое уже существует, и пропускает значение до 100, если оно уже превышает 100.

 $(document).on('keyup keydown',"#checkvaluenumber", function (e) { 
   console.log($(this).html() > 100)

  if( $(this).html() > 100 && e.keyCode != 46 && e.keyCode != 8 ) { 
     e.preventDefault();     
     $(this).html(100);
}
    });

этот код работает только для ввода вместо моей редактируемой ячейки td?

0 голосов
/ 23 ноября 2018

Вы можете сделать что-то вроде этого.Проверьте эту скрипку на рабочий код. Скрипка

$('.td-with-class').on('keyup input paste', function () {
    if (isNaN($(this).val())) {
        $(this).val('');
    }

    if ($(this).val() > 99) {
        $(this).val('');
    }
});
...