@ObehanProger

Почему не срабатывает вычисляемое свойство после валидации?

Пытаюсь реализовать наблюдателя через вычисляемое свойство. Полю title динамически присваивается класс success только после успешной валидации Jquery Validation. И этот 'success' должен появиться в названии кнопки, а он не появляется и кнопка остается false. Почему? Как исправить? Нашел только решения посредством каких-либо действий пользователя, например ввод букв в поле. А как сделать, чтобы кнопка менялась после изменения класса поля независимо от причины, по которой этот класс изменился?
HTML:
<input id="title" v-bind:class="{success:ifSuccess}">
<button id="btn">{{message}}</button>

JS
var app1 = new Vue({
  el: '#product_create_form',
  data: {
    ifSuccess: false
  },
  computed: {
    message:  function () {
      return this.ifSuccess
    }
  }
})
  • Вопрос задан
  • 64 просмотра
Пригласить эксперта
Ответы на вопрос 2
@InfernoElegy
computed вызывается только когда меняются его зависимости. В данном случае это ifSuccess, но я не вижу в коде чтобы он менялся. Изначально юзать jquery валидацию + vue - дурной тон.
Ответ написан
0xD34F
@0xD34F Куратор тега Vue.js
Встречный вопрос - а откуда вы взяли, что свойство должно изменить своё значение? Не должно, v-bind работает в одну сторону, от того, что какой-то сторонний код добавит элементу класс, свойство ifSuccess своего значения не изменит.

Хотите следить за наличием класса - используйте MutationObserver. Или, возможно, используемый вами плагин генерирует какие-то события, связанные с валидацией - тогда можно переключать значение свойства в соответствующем обработчике. Или, можно повесить на элемент обработчик события, которое вызывает валидацию (input, наверное), и проверять наличие класса и переключать свойство там.

Ну а самый правильный вариант - выкинуть на хрен jquery, и использовать для валидации какое-нибудь решение, разработанное специально под vue. VeeValidate, например.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы