jQuery keypress .val()在函数运行后返回先前的值

前端之家收集整理的这篇文章主要介绍了jQuery keypress .val()在函数运行后返回先前的值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个奇怪的问题,我似乎无法弄清楚:

这个keydown / keypress函数只返回前一个值(即第一次没有返回,第二次返回第一个值,第三次返回第二个值等等)

http://jsfiddle.net/ZRPfb/

有人可以告诉我为什么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()一起使用,因为该角色已被添加.

希望澄清一下!

猜你在找的jQuery相关文章