Hello, you have almost same code as me.
My problem : I lose "formatting" of the numbers after change on another field (after livewire refresh).
Despite the use of "wire:ignore"
maybe my code can help you ?
<div class="col-span-6 sm:col-span-2" wire:ignore>
<x-frontoffice.input.tel label="Mobile phone" :required="true" format="vertical"
x-data=""
x-ref="mobile_number" autocomplete="off"
x-init="()=> { myIntlTelInput($refs.mobile_number);}"
x-on:change="let number = window.intlTelInputGlobals.getInstance($refs.mobile_number).getNumber(); console.log(number);$dispatch('input',number)"
model-name="user.mobile_number"></x-frontoffice.input.tel>
</div>
external JS function is
window.myIntlTelInput = function (input) {
//Ajout un petit delai pour que livewire ai le temps de mettre la valeur dans le champ
setTimeout(() => {
intlTelInput(input, {
preferredCountries: [],
initialCountry: "auto",
utilsScript: "utils.min.js",
geoIpLookup: function (success, failure) {
let country = Cookies.get('ipcountry');
if (country !== undefined) {
success(country);
return;
}
fetchJsonp("ipinfo.io").then(function (response) {
return response.json()
}).then(function (json) {
let countryCode = (json && json.country) ? json.country : "us";
Cookies.set('ipcountry', countryCode, {expires: 7});
success(countryCode);
}).catch(function (ex) {
console.log('parsing failed', ex);
});
}
});
}, 200);
}
ps: I use "Cookie" for limit call to ipinfo