Javascript 使用Vue在当前字段上达到maxLength时转到下一个输入字段?

Javascript 使用Vue在当前字段上达到maxLength时转到下一个输入字段?,javascript,html,vue.js,nuxt.js,vuelidate,Javascript,Html,Vue.js,Nuxt.js,Vuelidate,我在Vue中有一个表单,其中包含一些组合输入,用于电话号码输入的样式设置。我的问题是,用户必须点击tab键才能进入电话号码的下一个输入字段。是否有办法检查电流和输入的最大长度,并在满足该要求时转到下一个输入 很肯定这不是推荐的UX智能,但下面是一个如何实现的示例: 有用代码的主要部分是 focusnextancepopulated(事件,最大值){ if(event.target.value.length==max){ const nextElement=this.$refs?[`input-$

我在Vue中有一个表单,其中包含一些组合输入,用于电话号码输入的样式设置。我的问题是,用户必须点击tab键才能进入电话号码的下一个输入字段。是否有办法检查电流和输入的最大长度,并在满足该要求时转到下一个输入


很肯定这不是推荐的UX智能,但下面是一个如何实现的示例:

有用代码的主要部分是

focusnextancepopulated(事件,最大值){
if(event.target.value.length==max){
const nextElement=this.$refs?[`input-${Number(event.target.dataset.index)+1}`]
if(nextElement)nextElement.focus()
}
},
说明:每次输入字符时,您都会检查字段长度是否达到您在特定输入上设置的最大值。如果是,并且有与兄弟姐妹相似的输入,则将其聚焦。
从性能角度看,添加几毫秒也不错

编辑:为了防止在DOM中查找正确的下一个
输入时出现任何问题,我们在每个输入上设置了一些引用(建议在Vue中选择一些DOM元素)。然后,当我们达到
max
时,我们将当前的输入
数据索引
增加1,这使我们能够转到下一个输入

PS:
?。
语法是,一旦达到
max
值,如果没有下一个
输入
,就可以防止出现错误


PS:不确定是否有方法可以直接在元素的
@input
事件上获取元素的
$refs
,但如果有,我没有找到方法。

aaa很好!当然,我的下一步是div右括号或div破折号…哈哈…谢谢你的建议!您需要为下一个输入设置选择器。刚刚更新了我的答案,找到了一个可行的方法。它有点冗长,但允许返回到前一个字段并再次聚焦下一个字段,而不是我们离开的最后一个字段。如果您想要以后的行为,在
数据中设置一个状态并一直递增它可能是一个解决方案。