在 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 单元格?
如果里面的值大于 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 单元格?