首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在提交表单后从(intl-tel-input)插件获取国家代码?

如何在提交表单后从(intl-tel-input)插件获取国家代码?
EN

Stack Overflow用户
提问于 2017-01-28 22:15:59
回答 8查看 25.2K关注 0票数 8

我已经安装了插件,它显示正确的国家和工作良好,但当我提交的表单,有类型=“电话”的输入,表单没有提交国家代码,我不知道这是如何工作的,但我确实读了所有的说明在https://github.com/jackocnr/intl-tel-input页面,但我不知道如何获得完整的数字+代码国家一起,以便我可以插入到MySQL数据库中。

我还是个初学者,只是对如何让它工作得更好感到困惑。如果问题不是那么难,很抱歉,但我真的不知道这是如何工作的。

我拥有的jQuery代码:

代码语言:javascript
复制
$("#telephone").intlTelInput({ 
    initialCountry: "sd",
    separateDialCode: true 
});
EN

回答 8

Stack Overflow用户

发布于 2020-07-09 20:17:42

intlTelInput选项:

hiddenInput

添加具有给定名称的隐藏输入。或者,如果您的输入名称包含方括号(例如,完整“phone_numbermain”),那么它将为隐藏输入提供相同的名称,将括号中的内容替换为给定的名称(例如,如果您使用hiddenInput:“name=”初始化插件,则在这种情况下,隐藏输入将具有name="phone_numberfull")。在提交时,它将使用完整的国际号码(使用getNumber)自动填充隐藏输入。对于使用非Ajax表单的用户来说,这是一种快速获取完整国际号码的方法,即使启用了nationalMode也是如此。在使用Ajax forms时,请避免使用此选项,而只需调用getNumber来获取完整的国际号码,以便在请求中发送。注意:要求输入位于表单元素内,因为此功能通过侦听最近的表单元素上的提交事件来工作。还要注意,因为这在内部使用了getNumber,所以首先它需要utilsScript选项,其次它需要一个有效的数字,因此只有在验证之后才能使用。

代码语言:javascript
复制
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)
  
});
代码语言:javascript
复制
<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>

代码

你可以像这样得到完整的数字

代码语言:javascript
复制
$phone_number = $_REQUEST['phone_number']['full'];
票数 9
EN

Stack Overflow用户

发布于 2017-08-11 00:39:38

使用以下内容提交表单:

HTML:

代码语言:javascript
复制
<form action="post">
  <div class="select">
    <input type="hidden" id="phone2" name="phone"/>
    <input type="tel" id="phone" name="phone-full">
  </div>
</form>

JAVASCRIPT:

代码语言:javascript
复制
$("form").submit(function() {
    $("#phone2").val($("#phone").intlTelInput("getNumber"));
});
票数 1
EN

Stack Overflow用户

发布于 2019-07-02 02:06:51

在你发布的链接中搜索了一下,我发现一个nice example正在做你问的事情

从这个例子中得到一些启发,下面是代码

HTML

代码语言:javascript
复制
<form action="post">
  <div class="select">
    <input type="hidden" id="country" name="country"/>
    <input type="tel" id="phone" name="phone">
  </div>
</form>

JS

代码语言:javascript
复制
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);
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41910786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档