在 keydown 事件后检查 keydown 值以防止 keydown

Check keydown value after the keydown event to prevent keydown

如果里面的值大于 99(输入新数字后的值),我正在使用以下代码测试可编辑的 td 单元格。

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

由于按键事件,测试值是按键事件之前的值。 我知道我可以跳到 keyup,所以它会在输入新数字后使用该值,但我想阻止任何高于 99 的数字,并且它不会阻止任何 "keyup" 方法。 有什么解决办法吗?

致以最诚挚的问候,并提前致谢!

你可以这样做。检查此 fiddle 以获取工作代码。 Fiddle

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

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

我找到了这个 fiddle: 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 单元格?