javascript - 输入值 onkeydown 返回不正确的值(少一)

标签 javascript input

我正在为我们客户的项目编写一个脚本,当您达到特定输入的最大字符数时,它会自动将您转到下一个输入字段。由于某种原因,输入值返回的值比应有的值小一,因此当在“阈值”上方输入额外字符时,会跳到“下一个”输入。

这是我观察输入值的脚本-ofc,如果有更好的方法,请告知:)-

var watchLength = function (watch) {
    watch.onkeypress = function () {
        var nextInput = getNextSibling(this);
        console.log(this.getAttribute('data-autotab-length'));
        console.log(this.value.length);
        if (this.value.length == this.getAttribute('data-autotab-length')) {
            nextInput.focus();
            console.log('Limit reached here');
        }
    };
};

以及工作输入的 jsFiddle。第一个输入仅限于“2”个字符,但是当您输入 3 时,它会跳转到下一个输入。我认为这与 keypress/keydown 事件没有读取初始值有关,但我不知道如何修复它。任何帮助都非常感谢。

我在控制台中记录结果:

http://jsfiddle.net/qdnCZ/

最佳答案

问题是,onkeypress会在你想要它之前触发。您可以简单地替换 onkeypress通过 onkeyup ,这样您就可以确保 <input>元素 value在您检查时设置正确。

见:http://jsfiddle.net/qdnCZ/1/

关于javascript - 输入值 onkeydown 返回不正确的值(少一),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19314495/

相关文章:

javascript - req.body 如何正确映射到这里的 const 变量数组?

c++ - 在一行代码中输入 2 个十六进制数字和一个字符串

HTML 单选按钮不会并排显示

c++ - 我怎样才能检测到输入是从一个文件重定向进来的?

python - 在 python 中输入时将输入转换为 * 的最佳方法是什么?

javascript - 两点之间的弧 : set angle "0" on top

javascript - Webpack 并非所有源映射都显示 typescript

javascript - 如何允许 Node pg 模块与我的 Windows postgresql 服务器通信?

javascript - 构造更复杂的 for 循环

css - 内联 block 元素未水平对齐