@kot98

Как поменять значение при фокусе?

При фокусе на инпут нужно удалить последний символ.
Есть такой инпут:

<input
...
v-model="personalData.totalAmount"
@focus="hideLastSymbol(personalData.totalAmount)"
/>

Метод при фокусе:

const hideLastSymbol = (value: string) => {
  return (personalData.totalAmount = value.substring(0, value.length - 1))
}

Если в методе hideLastSymbol присваивать просто value value = value.substring(0, value.length - 1), а не personalData.totalAmount новое значение, то появляется сообщение, что value is never used. Как сделать этот метод универсальным для разных значений, а не только для totalAmount?
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
Устанавливаете текстовому полю новое значение и отправляете ему событие input, чтобы v-model обновил данные компонента:

methods: {
  removeLastChar({ target: t }) {
    t.value = t.value.slice(0, -1);
    t.dispatchEvent(new Event('input'));
  },
  ...
},

<input
  @focus="removeLastChar"
  ...
>

https://play.vuejs.org/#eNp9kkFv1DAQhf/K1JdkpTQL6m...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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