如何将电话号码从国际电话输入传递到Ruby-on-rails上的输入?

时间:2019-07-03 10:57:34

标签: ruby-on-rails intl-tel-input

我有一个带有电话号码的simple_form。我正在使用国际电话输入来获取完整的phone_number并在不同国家(twilio)确认SMS。在console.log中,我成功显示了整个数字。提交后,我得到的电话号码没有国家/地区指示符(拨号代码)

我阅读了该文档,并尝试通过其他方式(.value,.data等)来获取它,但是无法保存整个phone_number(例如+33612345678,我刚得到61234567)。

这是我的代码:

    <div class="userphonenumber">
      <%= f.input :phone_number, label: 'N° de téléphone', required: true, autofocus: true ,
      input_html: { autocomplete: "intlNumber" }, wrapper_html: { id: 'userphonenumber' }%>
    </div>
<script>
  $("#user_phone_number").intlTelInput({
    formatOnInit: true,
    separateDialCode: true,
    onlyCountries: ['fr', 'at', 'be', 'bg', 'cz', 'dk', 'de', 'ee', 'ie', 'el', 'es', 'hr', 'it', 'cy', 'lv', 'lt', 'lu', 'hu', 'mt', 'nl', 'pl', 'pt', 'ro', 'si', 'sk', 'fi', 'se', 'uk'],
    initialCountry: "fr"
  });

  const flag = document.querySelector(".flag-container")
  flag.addEventListener("click", () => {
  var intlNumber = $("#user_phone_number").intlTelInput("getNumber");
  console.log("intlNumber", intlNumber)

  var input = document.querySelector("#user_phone_number");
  window.intlTelInput(input);

  });
</script>

我希望获得+33612345678,以便将t_phone与number一起使用。 RoR和JS的初学者。我错过了什么 ? 感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

最后用此解决方案解决:

<script>
  $("#user_phone_number").intlTelInput({
    formatOnInit: true,
    separateDialCode: true,
    onlyCountries: ['at', 'be', 'bg', 'cz', 'dk', 'de', 'ee', 'ie', 'el', 'es', 'fr', 'hr', 'it', 'cy', 'lv', 'lt', 'lu', 'hu', 'mt', 'nl', 'pl', 'pt', 'ro', 'si', 'sk', 'fi', 'se', 'uk'],
    initialCountry: "fr",
  });

  var phone = document.getElementById('user_phone_number')
  phone.addEventListener('keyup', (event) => {
    console.log(event)
  });

  $("form").submit(function() {
  $('#user_phone_number').val($(phone).intlTelInput("getNumber"));
  });
</script>