Прошу помощи с выводом popup окна. Подробнее. Есть сайт jetour.seotime.su. Есть три формы сверху. По клику в форме срабатывает js и вызывается order.php, который передаёт значения true и выводится скрытый div (popup__thanks-bg). Верхние три пункта работают, я вот нижний (после ответов на вопросы) - нет, хотя такая же логика. order.php PHP: {"success":true}
order.php выше указал HTML верхняя форма HTML: <div class="advantages"> <div class="advantage" id="1"> <div class="advantageimg ai3"></div> <div class="advantagetext">Записаться на тест-драйв</div> </div> <div class="advantage" id="2"> <div class="advantageimg ai1"></div> <div class="advantagetext">Специальные программы кредитования</div> </div> <div class="advantage" id="3"> <div class="advantageimg ai2"></div> <div class="advantagetext">КАСКО в подарок<span class="priceinfo2"></span></div> </div> </div> HTML нижняя форма HTML: <div class="blockpopup__bg"> <div class="blockpopup"> <div class="blockpopup__close"></div> <div class="blockpopup__add chatheader"> <div class="blockpopup__add-img"></div> <div class="blockpopup__add-text"> <div class="konsul__name">Ольга</div> <div class="konsul_pos">Онлайн-консультант автосалона JETOUR</div> </div> </div> <div class="blockpopup__chat"> <div class="msgpopup"></div> <div class="blockpopup__chat-msg mestext msgPurchase"></div> <div class="msgpopup butslink"> <input class="inptext popup_phone" type="tel" placeholder="+7 (___) ___-__-__"> <div class="divbutphone"><button class="butpopup">Отправить</button> <div class="error errorphone"></div> </div> <div class="popup_policy">Отправляя форму, Вы соглашаетесь<br>с <a href="./policy.pdf" target="_blank">политикой конфиденциальности</a></div> </div> </div> </div> </div> <div class="popup__thanks-bg"> <div class="popup__thanks"> <div class="blockpopup__close"></div> <div class="popup__thanks-img icosuccess"></div> <div class="popup__thanks-title smshead">Спасибо!</div> <div class="popup__thanks-desc smsdesc">Ваша заявка принята <br> Мы скоро свяжемся с Вами.</div> </div> </div> Во первое что пришло - нижний html одернуть класом advantages
Остались проблемы с пониманием. Вы не показали JS, а проблема у Вас в обработчике события Click. Это не понятно: нижний html одернуть класом advantages То что Вы называете "форма" на самом деле вложенные <div> блоки. HTML форма должна быть в тэгах <form></form> В order.php у Вас не PHP-код. Всё может прояснится, когда покажите JS.
(дополнение) Не дождался от Вас JS. Посмотрел jetour.seotime.su в браузере. JS посмотреть не удалось(сжат). Увидел несколько накладок в Ваших popup см. скриншот. 1. Не видна закрывашка обычно бывает html символ × , но у Вас img и он не виден. Код (Text): <div class="blockpopup__close"></div> 2. После </div> выводится --> Код (Text): <div class="blockpopup__chat-msg msgpopup mestext">Здравствуйте!<br> Напишите свой номер и я подробно расскажу обо всех доступных преимуществах от Jetour и нашего салона.</div> --> <div class="blockpopup__chat-msg mestext msgPurchase">Здравствуйте!<br>Напишите свой номер и я подробно расскажу обо всех доступных преимуществах от JETOUR, нашего салона и запишу Вас на тест-драйв!</div> Возможно <div class="blockpopup__chat-msg msgpopup mestext"> был закоментирован. повторяться не должно. Этот div м.б. вообще убрать или добавить перед ним <!-- Код (Text): <!-- <div class="blockpopup__chat-msg msgpopup mestext">Здравствуйте!<br> Напишите свой номер и я подробно расскажу обо всех доступных преимуществах от Jetour и нашего салона.</div> --> <div class="blockpopup__chat-msg mestext msgPurchase">Здравствуйте!<br>Напишите свой номер и я подробно расскажу обо всех доступных преимуществах от JETOUR, нашего салона и запишу Вас на тест-драйв!</div>
Добрый день! Посмотрел внимательно сайт в браузере. У Вас JS есть файл script1.js и в нём обработчики события "click" по кнопки "Отправить" Как я написал раньше, у Вас нет HTML-form и обработков события "submit". Для ввода данных применяется тэги input и checbox(в нижней "форме"). В обработчиках, данные выбираются по селекторам из ДОМ-элэментов соответствущих тэгов. После валидации данных, отправлются два запроса: - функцией sendRequestToCalltouch на API api.calltouch.ru - ajax POST-Request на url: 'order.php', В order.php данные как-то обрабатывают и возвращается JSON-Response, c значение success true или false. То, что Вы показали как PHP-код на самом деле воозвращаемый результат order.php. Почему же нижний (после ответов на вопросы) - нет, хотя такая же логика? Потому, что локика отличается. В обработчике трёх первых/верхних "форм" (см. код 1) для отправки запросов вызывается функция sendorderForm(), в нижней "форме" (см. код 2) функция sendorder(). Подозреваю, что в поледнем случае order.php возвращает false. Возможно, что во всех случаях должна вызываться функция sendorderForm() или что-то нужно подкрутить в функции sendorder() или в order.php. 1. Код (Javascript): function() { const elem = $(this); $('.popup_name').removeClass('inperror'); $('.popup_phone').removeClass('inperror'); $(this).html('Отправить').removeAttr('style'); var phone = $('.popup_phone').val(); var name = $('.popup_name').val(); var phone2 = $('.popup_phone').val().replace(/\D+/g, ''); var count = phone2.length; if (phone != '' && count == 11 && name != '') { if ( phone2.indexOf('00000') == -1 && phone2.indexOf('11111') == -1 && phone2.indexOf('22222') == -1 && phone2.indexOf('33333') == -1 && phone2.indexOf('44444') == -1 && phone2.indexOf('55555') == -1 && phone2.indexOf('66666') == -1 && phone2.indexOf('77777') == -1 && phone2.indexOf('88888') == -1 && phone2.indexOf('99999') == -1 ) { if (!elem.hasClass('disabled')) {} elem.css('width', $('.butphone').outerWidth()).addClass('disabled').html('<div class="lds-ellipsis"><div></div><div></div><div></div><div></div></div>'); sendorderform(); } else $('.popup_phone').addClass('inperror'); } else if (phone == '') { $('.popup_phone').addClass('inperror'); } else if (name == '') { $('.popup_name').addClass('inperror'); } } 2. Код (Javascript): function() { const elem = $(this); $('.errorphone').hide().html(''); $('.inpphone').removeClass('inperror'); $(this).html('Все верно?').removeAttr('style'); if ($(this).hasClass('butphoneshow')) { if (!$(this).hasClass('butlinkdisable') && !$(this).hasClass('butlinkdisable2')) { let phone = elem.closest('.butslink').find('.inpphone'); let phoneVal = phone.val(); let phoneNum = phone.val().replace(/\D+/g, ''); let phoneLen = phoneNum.length; let name = elem.closest('.butslink').find('.inpname'); let nameVal = name.val(); if (!phoneVal && phoneLen >= 10) { phone.addClass('inperror'); } else if (!nameVal) { name.addClass('inperror'); } else { if ( phoneNum.indexOf('00000') == -1 && phoneNum.indexOf('11111') == -1 && phoneNum.indexOf('22222') == -1 && phoneNum.indexOf('33333') == -1 && phoneNum.indexOf('44444') == -1 && phoneNum.indexOf('55555') == -1 && phoneNum.indexOf('66666') == -1 && phoneNum.indexOf('77777') == -1 && phoneNum.indexOf('88888') == -1 && phoneNum.indexOf('99999') == -1 ) { if (!elem.hasClass('disabled')) { $('.butphone').css('width', $('.butphone').outerWidth()).addClass('disabled').html('<div class="lds-ellipsis"><div></div><div></div><div></div><div></div></div>'); // ym(94769901, 'reachGoal', 'nomer'); sendorder(); } } else $('.inpphone').addClass('inperror'); } } } } Удачи!