Вернуться   Форум об интернет-маркетинге > >
Ответ
 
Опции темы
Старый 18.09.2019, 13:55   #1
Кандидат наук
 
Аватар для xoxol4uk22
 
Регистрация: 14.11.2017
Сообщений: 374
Репутация: 34464

По умолчанию Почему js срабатывает на странице только с одной (верхней) формой обратной связи?

Подскажите, пожалуйста.
Есть очень рростая форма обратной связи php + js. Первый из них получает данные пользователя, отправляет на почту и выдает результата "ОК". Второй реагирует на результат 'OK' и позволяет не перезагружать страницу, а прямо в окошке выводит сообщение об успешной отправке.

Но, если поставить 2 такие формы на страницу, то js работает только в первой, которая выше. Почему так происходит? Теоретически я могу продублировать файлы php и js для второй формы, но может можно как-то проще?
xoxol4uk22 вне форума   Ответить с цитированием

Реклама
Старый 18.09.2019, 13:57   #2
LEOnidUKG
『 Работаем 』
 
Аватар для LEOnidUKG
 
Регистрация: 25.11.2006
Адрес: Интернет
Сообщений: 22,887
Репутация: 2015264
Отправить сообщение для LEOnidUKG с помощью ICQ

По умолчанию Re: Почему js срабатывает на странице только с одной (верхней) формой обратной связи?

Потому, что код привязан на id скорее всего. А ID должен быть уникальный. Поэтому переводите обработку на class
LEOnidUKG вне форума   Ответить с цитированием
Сказали спасибо 3 пользователей:
Старый 18.09.2019, 15:00   #3
xoxol4uk22
Кандидат наук
 
Аватар для xoxol4uk22
 
Регистрация: 14.11.2017
Сообщений: 374
Репутация: 34464

ТопикСтартер Re: Почему js срабатывает на странице только с одной (верхней) формой обратной связи?

Цитата:
Сообщение от LEOnidUKG Посмотреть сообщение
Потому, что код привязан на id скорее всего. А ID должен быть уникальный. Поэтому переводите обработку на class
Да, спасибо большое. Действительно оно)

Но тогда такой вопрос... Я подправляю скрипт под 2 id:
Код:
$("#contact" && "#contact-2").submit(function() {...
Суть скрипта скрыть поля обернутые в <div id="fields"> и вывести на месте поля <div id="note"></div> текст об успешном заказе.

Но после объединения функции заказ происходит, но поля меняются только на верхней форме. А как можно сделать, чтобы менялись на обеих? Ну чисто в общих чертах...
xoxol4uk22 вне форума   Ответить с цитированием
Старый 18.09.2019, 15:14   #4
LEOnidUKG
『 Работаем 』
 
Аватар для LEOnidUKG
 
Регистрация: 25.11.2006
Адрес: Интернет
Сообщений: 22,887
Репутация: 2015264
Отправить сообщение для LEOnidUKG с помощью ICQ

По умолчанию Re: Почему js срабатывает на странице только с одной (верхней) формой обратной связи?

Цитата:
Ну чисто в общих чертах...
Если формы будет только две, не ломайте комедию, и сделайте две функции с разными ID

Иначе там нужно использовать классы + обращаться к ним, через this. чтобы показать коду, что вы будете работать с классами, которые находятся именно в этом окружении.
LEOnidUKG вне форума   Ответить с цитированием
Сказали спасибо:
Старый 18.09.2019, 15:26   #5
xoxol4uk22
Кандидат наук
 
Аватар для xoxol4uk22
 
Регистрация: 14.11.2017
Сообщений: 374
Репутация: 34464

ТопикСтартер Re: Почему js срабатывает на странице только с одной (верхней) формой обратной связи?

Цитата:
Сообщение от LEOnidUKG Посмотреть сообщение
Если формы будет только две, не ломайте комедию, и сделайте две функции с разными ID

Иначе там нужно использовать классы + обращаться к ним, через this. чтобы показать коду, что вы будете работать с классами, которые находятся именно в этом окружении.
Спасибо за помощь! Все таки удалось мне объединить функции. Я сделал 2 id и прописал "#id" && "#id-2", а затем скрываемые и отображаемые скриптом поля также сделал по типу:
$("#fields" && '#fields-2').hide();

Но чисто из любопытства возникает вопрос:
Почему функции удалось объединить именно через "И" (&&), а не через ИЛИ (||). Ведь запускается только одна за раз, а не обе? Но если сделать через ИЛИ, тогда не работает(((


ПОСПЕШИЛ С ВЫВОДАМИ)) ТЕПЕРЬ ПЕРВАЯ ФОРМА НЕ ПАШЕТ. ВОПРОС НЕ АКТУАЛЕН.

---------- Добавлено 18.09.2019 в 14:37 ----------

Цитата:
Сообщение от LEOnidUKG Посмотреть сообщение
Если формы будет только две, не ломайте комедию, и сделайте две функции с разными ID

Иначе там нужно использовать классы + обращаться к ним, через this. чтобы показать коду, что вы будете работать с классами, которые находятся именно в этом окружении.
Так и сделал)
xoxol4uk22 вне форума   Ответить с цитированием
Старый 18.09.2019, 16:11   #6
Sitealert
Слесарь-сайтосборщик
 
Регистрация: 30.09.2016
Адрес: Замкадье
Сообщений: 5,246
Репутация: 356867

По умолчанию Re: Почему js срабатывает на странице только с одной (верхней) формой обратной связи?

Цитата:
Сообщение от xoxol4uk22 Посмотреть сообщение
Код:
$("#contact" && "#contact-2")
Бррр... Это же селекторы
Код:
$("#contact,#contact-2")
__________________
Отпилю лишнее, прикручу нужное, выправлю кривое.
Вытравлю вредителей.
Sitealert вне форума   Ответить с цитированием
Сказали спасибо:
Старый 19.09.2019, 13:30   #7
xoxol4uk22
Кандидат наук
 
Аватар для xoxol4uk22
 
Регистрация: 14.11.2017
Сообщений: 374
Репутация: 34464

ТопикСтартер Re: Почему js срабатывает на странице только с одной (верхней) формой обратной связи?

Цитата:
Сообщение от Sitealert Посмотреть сообщение
Бррр... Это же селекторы
Код:
$("#contact,#contact-2")
Спасибо, в таком виде это решило все мои проблемы. До применения селекторов в js еще не дошел... Пытаюсь учить
xoxol4uk22 вне форума   Ответить с цитированием
Старый 19.09.2019, 15:37   #8
ivan-lev
Академик
 
Регистрация: 20.04.2007
Сообщений: 4,193
Репутация: 910383

По умолчанию Re: Почему js срабатывает на странице только с одной (верхней) формой обратной связи?

Цитата:
Сообщение от xoxol4uk22 Посмотреть сообщение
До применения селекторов в js еще не дошел...
Это не совсем js, это jQuery =)
На чистом JS это выглядит чуть более громоздко )))

Удачи в изучении
__________________
.. :)
ivan-lev вне форума   Ответить с цитированием
Сказали спасибо:
Ответ



Опции темы

Быстрый переход


Регистрация Справка Календарь Поддержка Все разделы прочитаны