Как остановить событие ввода, если моя проверка не удалась?

Я всегда предполагал, что это облегчает добавление дополнительных элементов:

int a[] = {
            5,
            6,
          };

просто становится:

int a[] = { 
            5,
            6,
            7,
          };

в более позднюю дату.

2
задан Pankaj 4 March 2019 в 08:30
поделиться

2 ответа

Просто используйте computed для проверки и null для события @input, когда ввод недействителен.

Например:

<input type="text" v-model="fraction.numerator" @input="numeratorValid ? changeFraction : null"/>
computed: {
  numeratorValid () {
    return Number.isInteger(this.fraction.numerator)
  }
}
0
ответ дан Dima Belyakov 4 March 2019 в 08:30
поделиться

<template>
  <div class = "fraction">

    <input
      @change = "changeFraction"
      name = "numerator"
      type = "number"
      v-model.number = "fraction.numerator" 
      />

    <input
      @change = "changeFraction"
      name = "denominator"
      type = "number"
      v-model.number = "fraction.denominator" 
    />

  </div>
</template>

<script>
  export default {
    name: 'FractionItem',
    data() {
      return {
        fraction: {
          numerator: '',
          denominator: '',
        },
      };
    },
    methods: {
      changeFraction(e) {
        const el = e.target;
        //need add plus before value, because writting letter in input change data value to string type
        if (!/[0-9]/g.test(+this.fraction[el.name])) {
          e.preventDefault();
        }

        this.$parent.changeFractionInput({
          id: this.id,
          [el.name]: +this.fraction[el.name],
          key: el.name,
        });
      },
    },
  }; 
</script>


<style lang = "scss" scoped></style>

0
ответ дан Drop 4 March 2019 в 08:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: