Использование intl-tel-input и vuejs2 вместе

Я пытаюсь реализовать https://github.com/jackocnr/intl-tel-input с vuejs2,

Если я добавлю в один JQuerydocument.ready, $('#phone').intlTelInput({ options...})

Все работает как положено, но когда я пытаюсь получить значение поля ввода и некоторые boolean действительное свойство, я всегда проверяю значение на шаг позади.

Мой метод проверки выглядит так:

    validatePhoneNumber: function() {
        var validPhoneNo = $("#phone").intlTelInput("isValidNumber");
        var phoneNo = $("#phone").intlTelInput("getNumber");
        console.log(phoneNo + ' -> ' + validPhoneNo); //this line returns values one step behind
        bus.$emit('validate-phone', validPhoneNo)
    }

HTML:

<input class="form-control" @keydown="validatePhoneNumber" :class="{validInput: validPhone }" type="text" name="phone" value="" id="phone" :phone_number="phone_number">

Я считаю, что решение было бы создать новую директиву по этому вопросу, и я попробовал следующее:

Удалена часть, где я создал экземпляр intlTelInput на document.ready и сделал это вместо этого:

Vue.directive('telinput', {
    bind: function(el) {
        $(el).intlTelInput({
            //options here...
    }
});

и добавил v-telinput к моему HTML код выше.

с этим, кажется, ничего не работает.

Что мне там не хватает?

1 ответ

Попробуйте использовать @keyup вместо @keydown

Другие вопросы по тегам