Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   После перезагрузки страницы скрипт работы переключателей перестает выполняться (https://javascript.ru/forum/jquery/76060-posle-perezagruzki-stranicy-skript-raboty-pereklyuchatelejj-perestaet-vypolnyatsya.html)

giwuf 12.12.2018 13:57

laimas, спасибо, идея понятна, а вот реализация пока не особо

Цитата:

значит она открыта по умолчанию (в атрибутах прописаны стили, кнопка выбрана)
В каких атрибутах прописать стили, чтобы кнопка была выбрана? И проверка на !$error по скрипту же?

Есть такой атрибут у кнопки, про него шла речь?
aria-selected="true"


Цитата:

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

Цитата:

Неизвестно что должно быть если форма заполнена верно
А здесь все просто - форма отправляет данные и перебрасывает на страницу с инфой по заполнению. К этой части вопросов нет, там все ок.

laimas 12.12.2018 14:12

Цитата:

Сообщение от giwuf
В каких атрибутах прописать стили, чтобы кнопка была выбрана?

Ну если клиентский скрипт добавляет/удаляет имя класса, значит где эти имена нужно прописать для раскрытой панели и не прописывать для закрытой, в class="здесь", так ведь? А радио кнопке указывать/нет checked. Типа:

при выводе html первой панели
<tag_name class="<?=!$error ? 'class_name' : null?>"
при выводе html второй панели
<tag_name class="<?=$error ? 'class_name' : null?>"


Ну и другое что необходимо еще также прописать, это по коду своему разберетесь.

laimas 12.12.2018 14:38

Цитата:

Сообщение от giwuf
чтобы она не слетела при обновлении движка, плагина или от малейшего чиха

Если не понятно как сделать на сервере, что странно, или по каким-то причинам затруднительно, переключайте вкладку на клиенте. Форма отправляется post методом, но запрос адреса, это get запрос. Можно к адресу запроса добавить любой параметр ?xxx, наличие которого проверять при загрузке страницы. Если запрос этой страницы не имеет параметров и заданный формой параметр единственный, то достаточно при загрузке выполнить:

if(location.search) $('order_time_field input:last').click()

giwuf 14.12.2018 00:08

laimas,
Посмотрите, плиз, наглядный пример того, о чем пишу.
Попробуйте добавить товар, перейти в таблицу на закладку контактные данные. Переключатели на серой плашке, валидация и выезжающее меню времени работают, но стоит оставить пустым полем телефон и попытаться оформить заявку - страница перезагружается и теперь все скрипты почему-то блокируются и перестают работать, как на картинке ниже. Почему и как это поправить для меня остается большой загадкой..
https://b.radikal.ru/b35/1812/12/e0f45df5f1a3.png

laimas 14.12.2018 07:51

А что означает эта картинка, разве по ней понять что там блокируется?

Выбрал, оформил, телефон пустой или правильный, отправляем, перегружается, видим форму вновь, все работает.

?

giwuf 14.12.2018 08:57

Цитата:

Сообщение от laimas
А что означает эта картинка, разве по ней понять что там блокируется?

laimas
я на картинке красными кружочками выделил плашки которые перестают реагировать на смену цвета при клике на них, например (это иммитация радиобатонов) после перезагрузки или по клику на плашку "к ближайшему времени" перестает открываться выпадающее меню с календарем - у вас не так?
А если уже физически заново перезаходим в корзину (не обновляем страницу), то снова все начинает работать

laimas 14.12.2018 09:34

Цитата:

Сообщение от giwuf
у вас не так?

Я вообще без понятия как там должно быть. :) Да, не изменяет цвет у текущей при выборе оплаты, но при этом на кнопке изменяется текст. Обработчики смотрите, где они у вас? Например, до отправления формы у нее нет обработчиков событий, а после отправления куча.

giwuf 14.12.2018 10:09

laimas вот 2 картинки. Должно быть так (как есть до перезагрузки)

а становится так (после перезагрузки страницы)

А как узнать про обработчиков событий?

laimas 14.12.2018 10:14

Цитата:

Сообщение от giwuf
А как узнать про обработчиков событий?

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

giwuf 14.12.2018 10:39

laimas,
ну код же движка с обработчиками написан не мной, поэтому и затруднительно о них знать.
"Я же просто в отладчике вижу у каких элементов есть обработчики, код которых можно посмотреть прямо в списке."
Подскажите, пожалуйста, что именно видите, может быть это наведет меня на мысль


Часовой пояс GMT +3, время: 09:00.