我已经安装了插件并且它正确显示国家并且工作正常,但是当我提交输入类型=“tel”的表单时,表单不提交国家代码,我不知道这是如何工作的,但我确实阅读了https://github.com/jackocnr/intl-tel-input页面中的所有说明,但我不明白如何将完整的数字+代码国家放在一起,这样我就可以将它们插入到MySQL数据库中。
我是如此初学者,并且只是混淆了如何使其工作正常。 对不起,如果问题不是那么难,但我真的不知道这是怎么回事。
我的jQuery代码: -
$("#telephone").intlTelInput({
initialCountry: "sd",
separateDialCode: true
});
答案 0 :(得分:6)
intlTelInput选项:
hiddenInput
添加具有给定名称的隐藏输入。或者,如果您的输入名称包含方括号(例如name =“ phone_number [main]”),则它将为隐藏的输入提供相同的名称,并用给定名称替换方括号的内容(例如,如果您使用hiddenInput初始化插件, :“ full”,那么在这种情况下,隐藏的输入将具有name =“ phone_number [full]”)。提交后,它将使用完整的国际号码(使用getNumber)自动填充隐藏的输入。这是使用非Ajax表单的人获取完整的国际号码的快捷方式,即使启用了nationalMode。使用Ajax表单时,请避免使用此选项,而只需调用getNumber即可获取要发送的完整国际号码。注意:要求输入必须在form元素内部,因为此功能通过侦听最近的form元素上的Submit事件来起作用。还要注意,由于此方法在内部使用getNumber,因此首先需要utilsScript选项,其次需要有效的数字,因此只能在验证后使用。
var phone_number = window.intlTelInput(document.querySelector("#phone_number"), {
separateDialCode: true,
preferredCountries:["in"],
hiddenInput: "full",
utilsScript: "//cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.3/js/utils.js"
});
$("form").submit(function() {
var full_number = phone_number.getNumber(intlTelInputUtils.numberFormat.E164);
$("input[name='phone_number[full]'").val(full_number);
alert(full_number)
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.3/css/intlTelInput.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.3/js/intlTelInput.min.js"></script>
<body>
<form>
<input type="tel" name="phone_number[main]" id="phone_number" />
<button type="submit" name="save">Save</button>
</form>
</body>
Php代码
您可以获得完整的号码,例如
$phone_number = $_REQUEST['phone_number']['full'];
答案 1 :(得分:1)
提交表格:
<强> HTML:强>
<form action="post">
<div class="select">
<input type="hidden" id="phone2" name="phone"/>
<input type="tel" id="phone" name="phone-full">
</div>
</form>
<强> JAVASCRIPT:强>
$("form").submit(function() {
$("#phone2").val($("#phone").intlTelInput("getNumber"));
});
答案 2 :(得分:0)
///在intlTelInput.js中添加代码以使用当前位置显示代码
$currentCountry = 'us';
$.ajax({
url: 'http://ip-api.com/json/',
async: false,
success:function(data){
$currentCountry = data.countryCode.toLowerCase();
// console.log(data.countryCode.toLowerCase());
}
})
$selected = $('.country_code').attr('country_iso_code2') != undefined ? $('.country_code').attr('country_iso_code2') : $currentCountry;
// console.log($selected);
var pluginName = "intlTelInpu`enter code here`t", defaults = {
preferredCountries: [ $selected ],
// united states and united kingdom
initialDialCode: true,`enter code here`
americaMode: false,
onlyCountries: []
};
答案 3 :(得分:0)
在您发布的链接中搜索了一点,我发现nice example正在执行您的要求
从示例中汲取灵感,下面是代码
HTML
<form action="post">
<div class="select">
<input type="hidden" id="country" name="country"/>
<input type="tel" id="phone" name="phone">
</div>
</form>
JS
var input = $('#phone');
var country = $('#country');
var iti = intlTelInput(input.get(0))
// listen to the telephone input for changes
input.on('countrychange', function(e) {
// change the hidden input value to the selected country code
country.val(iti.getSelectedCountryData().iso2);
});
答案 4 :(得分:0)
<form method="post">
<input type="hidden" id="code" name ="code" value="1" >
<input type="text" id="phone" name ="phone" value="" >
<button type="submit" >Send Verification Text</button>
</form>
<script type="text/javascript">
$(document).ready(function () {
$("#phone").intlTelInput({
preferredCountries: ["us", "ca"],
separateDialCode: true,
initialCountry: ""
}).on('countrychange', function (e, countryData) {
$("#code").val(($("#phone").intlTelInput("getSelectedCountryData").dialCode));
});
});
</script>
答案 5 :(得分:0)
HTML
(ng2TelOutput)="getNumberCellNo1($event)"
JavaScript
getNumberCellNo1(e:any)
{
this.cell_code1.setNumber(e)
this.cellnumber1=e
}
getNumber()
将为您提供国家代码和电话号码,即+919843133490。
setNumber
将设置国家/地区标志,并将数字输入到输入栏。
希望有帮助。可以询问其他任何查询。
答案 6 :(得分:0)
HTML 代码 使用这个html代码
<input type="text" name="ccode" id="ccode">
<input type="tel" id="phone" name="phone" >
Java 脚本代码
//Country code
var titilec=title.split(":");
document.getElementById('ccode').value=titilec[1];
在 intlTelInput.js 文件中添加上面的 js 代码在下面的代码之后
//更新所选国家的标题属性
var title = countryCode ? "".concat(this.selectedCountryData.name, ": +").concat(this.selectedCountryData.dialCode) : "Unknown";
this.selectedFlag.setAttribute("title", title);