Похоже, что vue-tel-input
предоставляет событие country-changed
. Согласно документам, он даже запускается впервые и возвращает объект:
Object {
areaCodes: null,
dialCode: "31",
iso2: "NL",
name: "Netherlands (Nederland)",
priority: 0
}
Таким образом, этот обработчик событий можно добавить к компоненту, а код страны можно сохранить в компоненте, как вы уже это делаете. для стоимости телефона.
HTML-часть
<div id="app">
<v-app id="inspire">
<v-form>
<v-container>
<v-row>
<v-col cols="12" sm="6" md="3">
<vue-tel-input v-model="phone" v-on:country-changed="countryChanged"></vue-tel-input>
</v-col>
</v-row>
</v-container>
<v-btn
color="success"
@click="submit"
>
submit
</v-btn>
</v-form>
</v-app>
</div>
JS-часть
new Vue({
el: '#app',
vuetify: new Vuetify(),
data() {
return {
phone: null,
country: null
}
},
methods: {
countryChanged(country) {
this.country = country.dialCode
},
submit() {
console.log(this.phone);
console.log(this.country);
}
}
});
Здесь вы можете увидеть рабочую версию: https://codepen.io/otuzel/pen/PooBoQW?editors=1011
ПРИМЕЧАНИЕ. t использовать Vue ежедневно, поэтому я не уверен, является ли это наилучшей практикой для изменения данных с помощью обработчика событий.