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

时间:2018-11-22 22:57:47

标签: jquery keydown

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

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

由于keydown事件,测试值是keydown事件之前的值。 我知道我可以跳到键入,因此它将在新的数字输入后使用该值,但是我想防止使用大于99的任何数字,并且使用“键入”方法不能阻止任何输入。 有解决方案吗?

最好的问候,并预先感谢您!

2 个答案:

答案 0 :(得分:0)

您可以执行以下操作。检查此小提琴以获取工作代码。 Fiddle

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

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

答案 1 :(得分:0)

我发现了这个小提琴: 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单元吗?