尝试使用国际电话输入插件解决问题。
基于此示例 https://intl-tel-input.com/node_modules/intl-tel-input/examples/gen/country-sync.html ,#phone 标志和 #country 文本正在发生相反的变化,但我希望电话号码字段上的拨号代码发生变化,有时标志也会相互重叠,有什么帮助吗?谢谢
var countryData = window.intlTelInputGlobals.getCountryData(),
input = document.querySelector("#phone"),
countryDropdown = document.querySelector("#country");
intlTelInput(input, {
allowDropdown: true,
autoHideDialCode: false,
autoPlaceholder: "off",
dropdownContainer: document.body,
preferredCountries: ['jp'],
separateDialCode: true,
customContainer: "col-md-12 no-padding intelinput-styles",
//utilsScript: "assets/js/utils.js"
});
var iti = intlTelInput(input, {
utilsScript: "./utils.js"
});
for (var i = 0; i < countryData.length; i++) {
var country = countryData[i];
var optionNode = document.createElement("option");
optionNode.value = country.iso2;
var textNode = document.createTextNode(country.name);
optionNode.appendChild(textNode);
countryDropdown.appendChild(optionNode);
}
input.addEventListener('countrychange', function(e) {
countryDropdown.value = iti.getSelectedCountryData().iso2;
});
countryDropdown.addEventListener('change', function() {
iti.setCountry(this.value);
});
最佳答案
没关系,我的错,调用了两次 init。
此处初始化:
var iti = window.intlTelInput(input, {
utilsScript: "assets/js/utils.js",
initialCountry: "jp",
separateDialCode: true,
customContainer: "col-md-12 no-padding intelinput-styles",
});
删除这个:
intlTelInput(input, {
allowDropdown: true,
autoHideDialCode: false,
autoPlaceholder: "off",
dropdownContainer: document.body,
preferredCountries: ['jp'],
separateDialCode: true,
customContainer: "col-md-12 no-padding intelinput-styles",
//utilsScript: "assets/js/utils.js"
});
关于javascript - 国际电话输入更改下拉列表拨号代码从另一个下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57406132/