Для отключения strictMode в плагине intl-tel-input при выборе определенной страны, можешь использовать метод setOptions после инициализации.
Тем не менее, можно реализовать сброс и повторную инициализацию плагина с обновленным значением strictMode
if (selectedCountry === "th") {
iti.destroy(); // Уничтожаем текущий экземпляр
iti = window.intlTelInput(item, {
initialCountry: "th",
separateDialCode: true,
strictMode: false,
utilsScript: "https://cdn.jsdelivr.net/npm/intl-tel-input@23.1.0/build/js/utils.js",
});
}
Такой подход является рабочим, но не самым оптимальным (ресурсоемкое)
как вариаент:
- фильтрация пользовательского ввода без пересоздания
Если strictMode отвечает за валидацию ввода, можно отключить его влияние, добавив свою собственную логику валидации, независимо от состояния strictMode.
const isValidNumber = iti.isValidNumber();
if (!isValidNumber && selectedCountry !== "th") {
// Показываем ошибку для других стран, но не для Таиланда
}
Если количество полей небольшое, пересоздание экземпляра (destroy и пересоздание) подходит как простое и понятное решение, в иных решениях нет