Vue ввод кода из sms как правильно организовать?

на смс отправляется 4-х значный код, например 1234

есть 4 инпута для ввода этого кода

<div class="code-holder">
              <input
                v-for="item in 4"
                :key="item"
                v-model.number="check.code[item - 1]"
                v-focus="(item - 1) === currentIndex"
                class="code-input form-control js-code-input"
                pattern="[0-9]{1}"
                inputmode="numeric"
                maxlength="1"
                type="number"
                @paste="handlePaste"
                @input="handleInput($event,(item-1))"
                @keyup.delete="onDelete($event,(item-1))"
              >
            </div>

как правильно реализовать ввод и когда например введено 4 цифры отпарвить на сервер запрос

пока такое накидал

data () {
    return {
      currentIndex: 0,
      check: {
        code: []
      }
    }
  },
  created () {
    this.check.code = new Array(4).fill('')
  },

  methods: {
    handleInput (e, index) {
      this.currentIndex = index
      e.target.value = this.validateNumber(e.target.value)
      alert(e.target.value)
      e.target.value !== '' && ++this.currentIndex
      !this.check.code.includes('') && this.$emit('onCompleted', this.check.code.join(''))
    },
    onDelete (e, index) {
      if (e.target.value === '') {
        this.currentIndex = index - 1
      }
    },
    validateNumber (val) {
      return val.replace(/\D/g, '')
    },
    handlePaste (e) {
      e.preventDefault()
    },
}

Ответы (0 шт):