Регион и input. Как, зачем и почему?

Подскажите, как сделать поле региона на этапе ввода данных о доставке в корзине input-ом? А не селектом, как это сделано по умолчанию.

Причем, вводить в это поле будут не название региона, а его цифровой код (например, 77 для Москвы).

5 ответов

  • 2

    Создайте поле инпут и обзовите его "регион" (в настройках оформления заказа)

    поле "регион", который селектом - скройте

  • 1
    Константин Егоров 7 апреля 2015 05:26 #

    Павел, такой вариант не подходит.

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

    Во-вторых, нельзя ввести регион цифрами.

    Если посмотреть код (http://joxi.ru/v29dJQYuqaVRmG), то видно, что есть поле "Регион" инпутом. Но оно скрыто. И как я могу предполагать, в нем можно вводить регион цифрами.

    Для какого предназначения этот инпут?

    • +2

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

      Вы можете JavaScript'ом убрать из DOM и инпут, и селект. И добавить свой собственный, без логики (или с любой логикой какой хотите). Главное, чтобы сервер получил то же самое. Атрибут name на вашем поле должен быть такой же, и значением должен уйти код региона.

      • +1
        Minya Jam Minya Jam 12 апреля 2017 15:49 #

        Есть еще такая особенность.

        Установлены плагины доставки Курьер и Почта России.

        Если выбрать Почта России и не указать зипкод например, то появляется сообщение о необходимость заполнить данное поле и если выбрать на доставку курьером, то вместо поля селект регион увидим инпут и код региона.

        Исправить можно было так, указав в requestedAddressFields плагина Курьер обязательным для предварительного расчета 'country' => array('cost' => true, 'hidden' => true, 'value' => 'rus')

  • 1
    Константин Егоров 7 апреля 2015 11:59 #

    Спасибо, Леонид!

    Попробую.

  • 1
    Константин Егоров 8 апреля 2015 03:34 #

    Все получается. Но возникает проблема.

    Перестают работать плагины доставки. Они видимо на select с option заточены.

    Подскажите, как сделать так, чтобы плагины доставки реагировали на смену value в input региона? (в java не особо силен)

  • 1
    Константин Егоров 8 апреля 2015 10:41 #

    Да, Леонид, забыл сказать, что чекаут у меня сделан плагином из магазина "Корзина в 1 шаг" (http://www.webasyst.ru/store/plugin/shop/bestcart/).

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите