Ошибка в форме заказа с регистрацией
Татьяна
Новичок
: 40
: 25-06-2015


04-02-2019 00:15
Версия престы 1.6
Правлю форму регистрации, в файлах order-opc-new-account.tpl, через "hidden"
+ в обязательных исправила содержимое с автоматическим заполнением в value=

При проверке, если убрать hidden, то оформление проходит успешно, но если скрыть это лишнее поле, то оформление проходит с ошибкой: требует заполнить addres2.

Смотрела address.tpl, authentication.tpl... Решение не нашла. Помогите пожалуйста как устранить возникающую ошибку. Как правильно скрыть ненужные обязательные поля.
 
 
Алекс


Администратор
: 4516
: Красноярск
: 29-05-2009


04-02-2019 13:57
Цитата:( Татьяна @ 04-02-2019 01:15 Смотреть сообщение )
Как правильно скрыть ненужные обязательные поля.

Поле address2 скрыть в настройках страны (используемой по умолчанию). Перейдите в "ПУ > Локализация > Страны" найдите в списке страну, далее в настройках этой страны в поле формат адреса удалите связанную строчку - "address2".

Цитата:( Татьяна @ 04-02-2019 01:15 Смотреть сообщение )
Правлю форму регистрации, в файлах order-opc-new-account.tpl, через "hidden"
+ в обязательных исправила содержимое с автоматическим заполнением в value=

При проверке, если убрать hidden, то оформление проходит успешно, но если скрыть это лишнее поле, то оформление проходит с ошибкой: требует заполнить addres2.

Доп. решение: скрыть и добавить значение по умолчанию (заполнить value="") любыми данными.
 
  
Татьяна
Новичок
: 40
: 25-06-2015


04-02-2019 17:33
Цитата:( Алекс @ 04-02-2019 14:57 Смотреть сообщение )
Цитата:( Татьяна @ 04-02-2019 01:15 Смотреть сообщение )
Как правильно скрыть ненужные обязательные поля.
Поле address2 скрыть в настройках страны (используемой по умолчанию). Перейдите в "ПУ > Локализация > Страны" найдите в списке страну, далее в настройках этой страны в поле формат адреса удалите связанную строчку - "address2"...
Доп. решение: скрыть и добавить значение по умолчанию (заполнить value="") любыми данными.

Результат прежний, скрыть можно, а вот отключить нет, ошибки выходят на обязательные поля. Вариант ниже работает только если скрытие убрать...
Код:
</div>
                {elseif $field_name eq "address2"}
                <div class="hidden""text is_customer_param form-group">
                    <label for="address2">{l s='Address (Line 2)'}</label>
                    <input type="text" class="text form-control validate" name="address2" id="address2" data-validate="isAddress" value="---" />
                </div>

Не помогло ;-( к сожалению...



:
1.jpg - 15.82KB, : 242 () 2.jpg - 63.38KB, : 179 ()
 
 
Алекс


Администратор
: 4516
: Красноярск
: 29-05-2009


05-02-2019 18:46
Цитата:( Татьяна @ 04-02-2019 18:33 Смотреть сообщение )
Не помогло ;-( к сожалению...

Не помогло тк. в коде множество ошибок.
Цитата:( Татьяна @ 04-02-2019 18:33 Смотреть сообщение )
<div class="hidden""text is_customer_param form-group">

это ошибка, и
Код:
<div class="hidden""required form-group"

и
Код:
<div class="hidden""select form-group date-select">

и
Код:
<input type="checkbox"name="optin" id="optin" value="1" autocomplete="off"/>

и
Код:
<p class="hidden""inline-infos required is_customer_param">Вы должны указать хотя-бы один номер телефона.</p>

и тем более это:
<input type="text" class="form-control validate" id="customer_lastname" name="customer_lastname" onblur="$('#lastname').val($(this).val());" data-validate="isName" value="---" />


Также если вы скрываете поле через hidden (display: none) необходимо изменять
Код:
type="text"
на
Код:
type="hidden"
 
  
Татьяна
Новичок
: 40
: 25-06-2015


06-02-2019 16:57
Спасибо, Алекс, за разъяснения. Стыдно конечно, что так натыкала с ошибками). Исправляю... Вроде теперь все работает, только вот некоторые поля скрываться не желают. Еще заголовки местами цепляются крепко от скрытия, подскажите пожалуйста как правильно сделать.
Может его можно совсем удалить, будет ли это правильным решением? А если скрыть, то как, так как этот вариант не работает, остается заголовок You must register at least one phone number и Home phone

Код:
{if isset($one_phone_at_least) && $one_phone_at_least}
                    <p class="inline-infos required is_customer_param"hidden>{l s='You must register at least one phone number.'}</p>
                {/if}                                
                <div class="form-group is_customer_param"hidden>
                    <label for="phone">{l s='Home phone'}</label>
                    <input type="hidden" class="text form-control validate" name="phone" id="phone"  data-validate="isPhoneNumber" value="{if isset($guestInformations) && isset($guestInformations.phone) && $guestInformations.phone}{$guestInformations.phone}{/if}" />
                </div>


Еще один момент устраняется пока только удалением...
Код:
<div class="form-group is_customer_param"hidden>
                    <label for="other">{l s='Additional information'}</label>
                    <textarea class="form-control" name="other" id="other" cols="26" rows="7"></textarea>
                </div>


Благодарю за помощь! Надеюсь справлюсь до конца. Как завершу, отпишусь!
 
 
Алекс


Администратор
: 4516
: Красноярск
: 29-05-2009


07-02-2019 17:10
Не используйте параметры впритык к иным (это ошибка):
Код:
<div class="form-group is_customer_param"hidden>

и это:
Код:
<div class="form-group is_customer_param"hidden>

, а вот так нет :box: :
Код:
<div class="form-group is_customer_param" hidden>


Попробуйте так:
Код:
<div class="form-group is_customer_param hidden">
                    <label for="other">{l s='Additional information'}</label>
                    <textarea class="form-control" name="other" id="other" cols="26" rows="7"></textarea>
                </div>

и
Код:
{if isset($one_phone_at_least) && $one_phone_at_least}
                    <p class="inline-infos required is_customer_param hidden">{l s='You must register at least one phone number.'}</p>
                {/if}                                
                <div class="form-group is_customer_param hidden">
                    <label for="phone">{l s='Home phone'}</label>
                    <input type="hidden" class="text form-control validate" name="phone" id="phone"  data-validate="isPhoneNumber" value="{if isset($guestInformations) && isset($guestInformations.phone) && $guestInformations.phone}{$guestInformations.phone}{/if}" />
                </div>
 
  
Татьяна
Новичок
: 40
: 25-06-2015


07-02-2019 18:06
Спасибо большое!