Невозможно получить международный номер с помощью intl-tel-input и веб-формы - PullRequest
0 голосов
/ 31 октября 2019

У меня сильная головная боль при вводе международного номера с помощью intl-tel-input и webform

У меня есть документация здесь: https://github.com/jackocnr/intl-tel-input

Упоминание о том, что я могу получить международный номер, используяthe Отдельный код набора.

Отдельный код вызова Тип: логический По умолчанию: false Отображать код набора номера страны рядом с выбранным флагом, чтобы он не был частью набранного номера. Обратите внимание, что это отключит национальный режим, потому что технически мы имеем дело с международными номерами, но с выделенным кодом набора.

Однако публикуется только национальный номер.

Здесь мой код включен вКонфигурация CSS / JavaScript моей веб-формы.

Drupal.webform = Drupal.webform || {};
Drupal.webform.intlTelInput = Drupal.webform.intlTelInput || {};
Drupal.webform.intlTelInput.options = {
  preferredCountries: ['fr'],
  separateDialCode: true,
  autoPlaceholder: "aggressive",
  formatOnDisplay: true,
};

Я получил отдельный код, показывающий, что проверка работоспособна, но во вводе моей формы нет международного кода.

Я попробовал скрытый вводно я не понимаю логику сохранения полного числа в параметре hiddenInput, если он уже управляется библиотекой :(. То же самое с форсированием nationalMode: False.

На этой картинке единственный результат, который яполучить "782828282", а не "+33782828282"

Кто-нибудь?

Приветствия,

1 Ответ

0 голосов
/ 03 ноября 2019

Я использовал в следующем формате, пример основан на том, что я делаю

<div class="row">
 <asp:Label ID="lblPhone" CssClass="lbl" runat="server" Text="Telephone *">
 </asp:Label><asp:TextBox ID="txtPhone" CssClass="rg-txt rg-phone-txt" runat="server"></asp:TextBox>
 <asp:TextBox ID="txtCountryCode" style="display:none;" Text="" runat="server"></asp:TextBox>
 <asp:CustomValidator ID="cvPhone" ErrorMessage="*" CssClass="validate v-phone-txt" ClientValidationFunction="ValidatePhone" ValidationGroup="vg" runat="server" />
</div>



    $("#MainContent_txtPhone").intlTelInput({
        preferredCountries: ['us'],
        utilsScript: "../../Scripts/libphonenumber/utils.js"

    });

    setTimeout(function () {
         $("#MainContent_cvPhone").appendTo(".intl-tel-input");
    }, 5000);

во время проверки формы я присваиваю значение страны txtCountryCode $("#MainContent_txtCountryCode").val(country);

Из кодапозади я получаю код страны и номер телефона на веб-интерфейсе, который я показываю только Country Flag + Phone number.

надеюсь, это поможет, у меня возникла проблема с запуском этого сценария, так как я использую мастер-страницу и сценарий, если не место в нужном месте, не 'не работает должным образом. если вы не используете подход Master Page, тогда это не должно быть проблемой.

Я не помню, была ли у меня похожая проблема, с которой вы столкнулись, поскольку я не выполнял эту работу почти 2 года назад

...