Javascript 输入值onkeydown返回不正确的值(少一个)
我正在为我们客户的项目编写一个脚本,当您达到特定输入的最大字符数时,它会自动将您锁定到下一个输入字段。由于某些原因,输入值返回的值比其应返回的值小一个,因此,当输入的额外字符超过“阈值”时,会切换到“下一个”输入 下面是我观察输入值的脚本-ofc,如果有更好的方法,请建议:)- 以及工作输入的jsFiddle。第一个输入限制为“2”个字符,但当您键入3时,它将跳转到下一个输入。我认为这与keypress/keydown事件没有读取初始值有关,但我不知道如何修复它。非常感谢您的帮助 我正在控制台中记录结果:Javascript 输入值onkeydown返回不正确的值(少一个),javascript,input,Javascript,Input,我正在为我们客户的项目编写一个脚本,当您达到特定输入的最大字符数时,它会自动将您锁定到下一个输入字段。由于某些原因,输入值返回的值比其应返回的值小一个,因此,当输入的额外字符超过“阈值”时,会切换到“下一个”输入 下面是我观察输入值的脚本-ofc,如果有更好的方法,请建议:)- 以及工作输入的jsFiddle。第一个输入限制为“2”个字符,但当您键入3时,它将跳转到下一个输入。我认为这与keypress/keydown事件没有读取初始值有关,但我不知道如何修复它。非常感谢您的帮助 我正在控制台中
问题是,
onkeypress
会在您希望它启动之前启动。您只需将onkeypress
替换为onkeypup
,这样您就可以确保在检查
元素值时正确设置它
请参阅:是,它将返回一个较小的值,只需在长度检查中使用+1即可。这是因为在更新字段之前执行了onkeypress
事件,这意味着使用e.preventDefault()
该字母将不会出现在字段中。您可以使用onkeyup
否则。使用onkeyup
代替onkeypress
onkeyup
在字段更新后被激发
if (this.value.length == this.getAttribute('data-autotab-length')) {
nextInput.focus();
console.log('Limit reached here');
return false; // this is prevent the third value being entered
}
该死,总是这么简单:)!非常感谢你。
if (this.value.length == this.getAttribute('data-autotab-length')) {
nextInput.focus();
console.log('Limit reached here');
return false; // this is prevent the third value being entered
}