Доработать маску (плейсхолдер) телефона в ядре Карта

эти не помогли ((( последний уже завтра поковыряю.
Спасибо за помощь!

1 лайк

Только этот вариант сработал, спасибо.
Что интересно - я изменил в файле /js/lib/inputmask-multi/phone-codes.json строку
{ “mask”: “+38(###)###-##-##”, “cc”: “UA”, “name_en”: “Ukraine”, “desc_en”: “”, “name_ru”: “Украина”, “desc_ru”: “” },
Ничего не произошло, а вот в один клик такое поведение без модуля маски http://joxi.ru/LmGoXkOhJYKoYm

Беда. При редактировании заказа клиента - не даёт ввести код +44 (Великобритания есть в списке стран). Где это регулируется вообще?

В идеале - все вышенаписанное скомпоновать в модуль)

Ну да. А что делать с телефонами городскими, когда код города начинается на 8? Например +7 812 123-45-67 для Санкт-Петербурга?

Пробовал Ваш вариант. Увы, не рабочий :frowning:

А что делать с телефонами городскими

К сожалению да, скрипт выше подойдет только для мобильных номеров одного формата. Для нескольких форматов надо допиливать валидатор, но я не вникал как это можно сделать, так как в моем случае в этом нет необходимости.

1 лайк

они таки файл обновили и ввод номера слетел ))
проверьте кто правил
/js/lib/inputmask-multi/phone-codes.json

2 лайка

Вопрос по-прежнему актуален

2 лайка

Здравствуйте, кто подскажет как заставить работать этот скрипт

При регистрации аккаунта для поля телефон

Можно добавить дополнительный селектор, который есть у полей телефона в CS Cart.

В скрипте заменить:

$('input[type="tel"]').inputmask({

на:

$('input[type="tel"], input[x-autocompletetype="tel"]').inputmask({

И почистить кэш CS Cart и браузера.

А это в каком именно файле? Что-то я запутался, не вижу, можешь подсказать?

я так понял вот это имеется ввиду?

У кастомного скрипта из scripts.post.tpl, alex_vp выше правильно подсказал

спасибо, только не помогло. Везде работает в один клик, обратный звонок, оформление заказа при регистрации аккаунта не хотит

После внесения правки попробуйте в другом браузере проверить поле, бывает что js-кэш не сразу сбрасывается

Может тут более подходящий вариант правки полей самого шаблона ?views/profiles/components/profile_fields

<label
for="{$id_prefix}elm_{$field.field_id}"
class=“ty-control-group__title cm-profile-field {if $field.autocomplete_type == “phone-full” || $field.field_type == “ProfileFieldTypes::PHONE”|enum}cm-mask-phone-label{/if} {if $field.required == “Y”}cm-required{/if}{if $field.field_type == “Z”} cm-zipcode{/if}{if $field.field_type == “E”} cm-email{/if} {if $field.field_type == “Z”}{if $section == “S”}cm-location-shipping{else}cm-location-billing{/if}{/if}”
>{$field.description}

Попробуйте еще так:

$('input[type="tel"], input[x-autocompletetype="phone-full"]').inputmask({

Либо в указаном шаблоне найдите код:

    <input
        {if $field.autocomplete_type}x-autocompletetype="{$field.autocomplete_type}"{/if}
        type="text"
        id="{$id_prefix}elm_{$field.field_id}"
        name="{$data_name}[{$data_id}]"
        size="32"
        value="{$value}"
        class="ty-input-text{if ($field.autocomplete_type == "phone-full") || ($field.field_type == "ProfileFieldTypes::PHONE"|enum)} cm-mask-phone{/if} {if !$skip_field}{$_class}{else}cm-skip-avail-switch{/if} {if $smarty.foreach.profile_fields.index == 0} cm-focus{/if}" {if !$skip_field}{$disabled_param nofilter}{/if}
    />

и замените на:

<input
    {if $field.autocomplete_type}x-autocompletetype="{$field.autocomplete_type}"{/if}
    type={if ($field.autocomplete_type == "phone-full")}"tel"{else}"text"{/if}
    id="{$id_prefix}elm_{$field.field_id}"
    name="{$data_name}[{$data_id}]"
    size="32"
    value="{$value}"
    class="ty-input-text{if ($field.autocomplete_type == "phone-full") || ($field.field_type == "ProfileFieldTypes::PHONE"|enum)} cm-mask-phone{/if} {if !$skip_field}{$_class}{else}cm-skip-avail-switch{/if} {if $smarty.foreach.profile_fields.index == 0} cm-focus{/if}" {if !$skip_field}{$disabled_param nofilter}{/if}
/>

Тогда у поля будет тип “tel” вместо “text” и скрипт маски сработает.

Первый вариант предпочтительней, чтоб не править шаблон напрямую.

1 лайк

@imac, @ikoshkin
а давайте таки доделаем эту работу
62 человека проголосовало, для форума это много
доделайте плиз плейсхолдеры.

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

%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

11 лайков

@imac, @ikoshkin, загляните сюда
обратите внимание, что даже разработчики поддерживают доработку данного функционала
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

12 лайков

@imac, @ikoshkin, @cs-cart_team

4 лайка