我有一个奇怪的问题,我似乎无法弄清楚:
这个keydown / keypress函数只返回前一个值(即第一次没有返回,第二次返回第一个值,第三次返回第二个值等等)
有人可以告诉我为什么keydown和keypress不工作,但keyup工作?
$(".modal-body #rowDownload").unbind().on('keypress',function(){ var numRows = $(".modal-body #rowDownload").val(); // var numRows = $(this).val(); alert(numRows); if (typeof numRows !== 'number') return; });
解决方法
@H_301_13@ 这是javascript的正常行为.您在keypress上调用的函数在添加值本身之前运行.让我向你展示一下.当你在keypress上执行.preventDefault()时,会发生什么?不会插入该字符.后面的代码添加字符,然后运行preventDefault()并删除字符是逻辑吗?我不这么认为,这就是为什么函数在添加字符之前运行的原因.
它将与.keyup()一起使用,因为该角色已被添加.
希望澄清一下!