You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

intl-tel-input显示已有号码时未匹配对应国旗,仍用initialCountry国旗

问题

使用intl-tel-input存储完整国际号码到数据库功能正常,但在编辑页面显示时,号码能正确去除国家码,却始终显示initialCountry设置的国旗(比如存储的是阿尔巴尼亚号码+3553456546578,编辑页却显示埃及国旗,号码显示为3456546578)。

原因

intl-tel-input初始化时,不会自动读取输入框内的已有号码并解析匹配对应国家,只会默认使用initialCountry配置的国家选项。

解决方案

初始化插件后,手动调用插件的setNumber方法,让插件解析输入框中的现有号码,自动切换到对应国家:

  • 确保utilsScript已正确加载(用于号码解析逻辑)
  • 插件初始化完成后,调用setNumber方法传入输入框的现有号码
  • 增加空值判断,避免空号码时触发错误
修改后的代码

HTML

<input type="tel" id="mobile_code" class="form-control" placeholder="{{ __('messages.phone') }}" name="phone" value="@if ($customer->phone != 'null') {{ $customer->phone }} @endif">

JS

const input = document.querySelector("#mobile_code");

var phone_number = window.intlTelInput(input, {
    preferredCountries: ["us", "eg"],
    initialCountry: "eg",
    separateDialCode: true,
    utilsScript: "https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/11.0.4/js/utils.js"
});

// 解析现有号码并匹配对应国家
if (input.value.trim()) {
    phone_number.setNumber(input.value.trim());
}

内容的提问来源于stack exchange,提问作者Dark Link

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 12:55:02