Как сделать валидацию инпута c типом number Vue.js?

Не пойму как написать проверку на введенное значение, чтобы нельзя было ввести число <1 и >99 Все что писала до этого не работает

<input
              class="qty__input form__input"
              type="number" 
              @input="validateInputData(product.qty)"
              v-model="product.qty">
 
<script>
 methods: {
    validateInputData(qty) {
      // this.$emit("validateInputData")
      if (qty < 1 || qty === "" || qty === 0) {
        qty = 1;
      } 
      else if (qty >= 99) {
        qty = 99;
      } 
      else {
        qty = qty;
      }
    }
</script>

подскажите как это сделать на vue.js


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

Автор решения: Александр Рогонов

Вот так. Но вообще, правильнее подсвечивать ошибку а не молча менять на валидное значение

var app = new Vue({
  el: '#app',
  data: {
    product: {
      qty: 1
    },
  },
  methods: {
    validateInputData() {
      if (this.product.qty < 1) return this.product.qty = 1;
      if (this.product.qty > 99) this.product.qty = 99;
    },
  },
})
<script src="https://cdn.jsdelivr.net/npm/[email protected]"></script>
<div id="app">
  <input
    v-model="product.qty"
    type="number"
    @input="validateInputData()"
  />
</div>

→ Ссылка