Как выбрать по умолчанию один из способов оплаты в процессе оформленния заказа покупателем?

[10 ноября 2016 г.]    Российская сборка Magento 2.49.12
Magento 2: модули и услуги
#1 zionko
  • Группа: Пользователь
  • Сообщений: 38
  • Регистрация: 22.03.2011

31.05.2011 16:07

модуль оплаты , установить по дефолту

есть type=radio где onclick="payment.switchMethod('test')" и onclick="payment.switchMethod('test2')"

оба если нажимать они раскрываются
но как это сделать по дефолту чтобы был и уже раскрыты и при переключении он прятался

простым действием как <script>$payment.switchMethod('test2')</script> или checked=checked

это не помогло

#2 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8884
  • Регистрация: 20.02.2010

31.05.2011 16:13

Ваш программный код на JavaScript для настройки платёжной формы должен срабатывать по событию получения платёжной формы с сервера.
В вашем же примере программный код на JavaScript срабатывает моментально: как только браузер выполнит его синтаксический разбор.

#3 zionko
  • Группа: Пользователь
  • Сообщений: 38
  • Регистрация: 22.03.2011

31.05.2011 16:33

это да он срабатывает и раскрывает его по нажатию на модуль

а как можно сделать так чтобы он при заходе в раздел ( выбрать метод оплаты ) на одном из модулей уже был активирован один из модулей ? и если я выберу другой то первый модуль закрывался и раскрывался другой ( который я выбрал ?

#4 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8884
  • Регистрация: 20.02.2010

31.05.2011 16:55

  • Ответил выше
  • Стандартная тема Magento по умолчанию сворачивает все платёжные модули, кроме выбранного покупателем, а выбранный покупателем - разворачивает.


#5 zionko
  • Группа: Пользователь
  • Сообщений: 38
  • Регистрация: 22.03.2011

31.05.2011 16:59

а как можно отметить какой не сворачивать ? со всеми вместе

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

#6 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8884
  • Регистрация: 20.02.2010

31.05.2011 17:03

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

#7 zionko
  • Группа: Пользователь
  • Сообщений: 38
  • Регистрация: 22.03.2011

31.05.2011 17:10

это понятно , вопрос только в том как их активировать ? так как на radio недостаточно просто указать checked

#8 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8884
  • Регистрация: 20.02.2010

31.05.2011 17:13

Боюсь, вы ошибаетесь.
согласно спецификации W3C - достаточно (смотрите параграф 17.2.1)

#9 zionko
  • Группа: Пользователь
  • Сообщений: 38
  • Регистрация: 22.03.2011

31.05.2011 17:33

<input value="1" type="radio" name="test" onclick="payment.switchMethod('test1')" class="radio" autocomplete="off">
<input value="2" type="radio" name="test" onclick="payment.switchMethod('test2')" class="radio" autocomplete="off">


вот два модуля
при нажатии на один из них откроется <div id=test1> или <div id=test2>


суть в том как сделать так чтобы один был уже нажат и javascript открыл нужный нам DIV можно вот так прописать checked="checked" но при этом DIV будет закрыт
только после клика по нему <DIV> открывается

#10 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8884
  • Регистрация: 20.02.2010

31.05.2011 17:56

Для раскрытия блока DIV, разумеется, атрибут checked не поможет.
Вам нужно вызвать метод payment.switchMethod(), причём, как я уже говорил, сделать это не при загрузке страницы, а после асинхронного добавления к документу разметки HTML для платёжного блока.

#11 zionko
  • Группа: Пользователь
  • Сообщений: 38
  • Регистрация: 22.03.2011

31.05.2011 18:45

то-есть непосредственно перед
<input value="1" type="radio" name="test" onclick="payment.switchMethod('test1')" class="radio" autocomplete="off">

я вызывал вот таким образом но не помагло
<script>$payment.switchMethod('test1')</script>

#12 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8884
  • Регистрация: 20.02.2010

31.05.2011 20:11

Выбор у вас невелик: учить основы языка JavaScript или же обратиться к специалисту.

#13 zionko
  • Группа: Пользователь
  • Сообщений: 38
  • Регистрация: 22.03.2011

31.05.2011 20:22

нде о чем тут тогда было это все ? чисто типа чат....

таким боком форум явно не развить , если спустя столько постов придти к такому результату

#14 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8884
  • Регистрация: 20.02.2010

31.05.2011 20:24

Назначение данного форума

Поделиться темой: