【问题标题】:Trigger tab event on matching input length在匹配输入长度时触发选项卡事件
【发布时间】:2019-09-29 04:48:47
【问题描述】:

我有一个特定的要求,我需要在匹配该条件后触发选项卡事件。因此,只要输入长度的值与给定长度匹配,我就需要触发 tab 事件,以便将焦点移动到下一个可聚焦元素。

<template>
  <input type="text" v-model="username" @input="handleInput">
</template>

<script>
export default {
  data() {
    return {
      username: null
    };
  },
  methods: {
    handleInput(e) {
      const value = e.target.value;
      if (value && value.length >= 5) {
        // I would like to trigger tab event here
      }
    }
  }
};
</script>

【问题讨论】:

    标签: javascript input vuejs2 vue-component dom-events


    【解决方案1】:

    好的,这可以使用 Vue ref 和 javascript 来完成,假设你有另一个 input 元素,我们可以使用 Vue ref 来访问 dom 元素本身,

    <div id="app">
        <input type="text" v-model="username" @input="handleInput">
        <input type="text" ref="input2" />
    </div>
    

    在js端可以使用元素的focus方法,

    if (value && value.length >= 5) {
      this.$refs["input2"].focus();
    }
    

    【讨论】:

    • 是的,只有当两个元素属于同一个组件时才有可能,但我的输入属于两个独立的组件
    • 你有一个固定的元素在达到 5 个字符时被聚焦还是会动态变化?
    • 是的,第二个元素是动态变化的
    • 您可以在 if 条件中发出自定义事件,并且可以使用它的事件处理程序设置焦点
    • 我不明白你
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-17
    • 1970-01-01
    • 2014-07-21
    • 1970-01-01
    相关资源
    最近更新 更多