Vue Не работает фильтр в поле input

130
05 июля 2019, 15:20

Сделал фильтр для фильтрации ввода чисел, но чего-то не хватает. Подскажите, почему не работает фильтр в поле input.

На странице он нормально работает:

<form action="" id="calc">
<input type="text" v-model="test" style="text-align: right">
<p>Model value : {{ test | numFilter }}</p>
</form>
    Vue.filter('numFilter', function (value) {
            return value.replace(/[^\d.]*/g, '')
                .replace(/([.])[.]+/g, '$1')
                .replace(/^[^\d]*(\d+([.]\d{0,5})?).*$/g, '$1');
})
var app = new Vue({
  el: '#calc',
  data: {
     test: ''
  }
});

Ссылка на codepen

Когда пытаюсь применить его к полю input, даже поле не выводиться:

<form action="" id="calc">
<input type="text" v-model="test | numFilter" style="text-align: right">
</form>

Ссылка на codepen

Answer 1

Директива v-model предназначена для двусторонней связки элемента с переменной - вводите текст в поле и директива присваивает результат в переменную test. А вы указали "test | numFilter" выражение вместо имени переменной, это не работает. Регулярное выражение вам не поможет, вам нужно создать свою пользовательскую директиву, которую нужно повесить на input для обрабатывания ввода.

Пример посмотрите здесь

Пример не является решением, только описывает способ.

Или же можно использовать уже готовый компонент: https://www.npmjs.com/package/vue-input-number

READ ALSO
Замена слова JavaScript

Замена слова JavaScript

Есть код в котором при нажатии кнопки, слова "атрибут" заменяются на ***Что добавить в эту строку, чтобы заменялись "атрибут" и "Атрибут" слова?

140
&ldquo;Uncaught TypeError: 5 is not a function&rdquo; при присваивании 5 в переменную [закрыт]

“Uncaught TypeError: 5 is not a function” при присваивании 5 в переменную [закрыт]

Почему данный код приводит к возникновению ошибки?

158
Не работает захват видео в Safari

Не работает захват видео в Safari

Подскажите, какое API можно использовать для захвата видео в Safari

158
Изменение стиля блока с hover подсказкой JS

Изменение стиля блока с hover подсказкой JS

При наведении всплывает подсказка с текстом,все отлично работает но необходимо, чтобы весь блок с картинкой позади затемнялся, при всплывании...

123