VueJS Проверка не запускает первый звонок - PullRequest
0 голосов
/ 20 апреля 2020

ОК. Итак, у меня есть подтверждение, которое я вызываю для размытия из поля ввода. Я передаю идентификатор и ограничиваю его валидацию в этом методе. Я использую Bootstrap Vue для всплывающего окна, что проверки он также выдвинут.

Но мой вопрос заключается в том, почему проверка не работает при первом вызове. Для объяснения, скажем, вы не можете заказать более 5 для продукта, и вы вводите 10 в поле количества и мышь из коробки. Ничего не происходит, но если вы наведите курсор мыши на тот же блок и наведите курсор мыши, это показывает ошибку проверки

Поле ввода с поповером

Вот миксин / функция, которая вызывается при размытии. методы: {limitChecking (id, limit) {// Сбрасывает всплывающее сообщение и сообщение об ошибке this. $ root. $ emit ('bv :: hide :: popover') var inputValue = document.getElementById ("input -" + id) .value this.errorMessage = 'Введенное количество слишком велико: \ n' var validations = ""

  validations = this.findAllValidation(limits, inputValue)

  this.errorMessage = this.errorMessage + validations

  if(validations.length === 0 && inputValue > 0){
    document.getElementById("button-"+id).disabled = false;
  }else if (inputValue <= 0){
    document.getElementById("button-"+id).disabled = true;
  }else{
    this.fireValidationPopover(id)
  }
},
findAllValidation(limits, inputValue){
  var validations = ""

  for (var key in limits) {
      if (limits.hasOwnProperty(key)) {
        if(inputValue > limits[key].value){
          validations +=  limits[key].name + " " + limits[key].value + "\n"
        }
      }
  }
  return validations
},
fireValidationPopover(id){
  document.getElementById("button-"+id).disabled = true;
  this.$root.$emit('bv::show::popover', "popover-"+id);
}
} // End Methods 

1 Ответ

0 голосов
/ 21 апреля 2020

Итак, вы пытались вызвать @blur="yourValidationMethod" в своем поле ввода внутри <template>?

Затем определите свой метод проверки после data() инициализации в <script>

.
.
.
methods:{
          yourValidationMethod(){
            // Your validation codes here, triggered once 'blur' event 
          }
        }

Тестировал с простой @blur проверкой, чтобы он работал.

...