Как бороться с двумя одинаковыми формами на странице? - PullRequest
0 голосов
/ 05 декабря 2018

Я разрабатываю целевую страницу в WordPress, которая выводит одну и ту же форму CF7 дважды, один раз вверху и один раз внизу страницы.У меня есть несколько проблем, в основном из-за дублированных идентификаторов, например, я не могу установить маску ввода по идентификатору, и поскольку эта же форма используется на других страницах, я хотел бы, чтобы это была та же форма, особенно дляиметь одно место в случае изменений.

Ответы [ 3 ]

0 голосов
/ 05 декабря 2018

Вы можете использовать класс вместо идентификатора, а затем добавить прослушиватели событий для обоих

let $ forms = $ ('. Form-class')

$ forms.on ('submit'), function () {...})

0 голосов
/ 06 декабря 2018

Я не уверен, что именно ваши проблемы, но если вы хотите провести различие между двумя формами CF7 на одной странице и выбрать входы, вы можете сделать следующее:

  • Вставить форму дваждылибо оберните их обоих в div с уникальным идентификатором
  • Выберите входные данные формы, используя родительский элемент, например: var select=document.querySelector("#form1 > #input"); (или, альтернативно, querySelectorAll).

Пример:

<html>
  <body>
    <div id="form1"><p id="test">Content1</p>
    <div id="form2"><p id="test">Conten2t</p>
  </body>
</html>

Затем JS document.querySelector("#form1 > #input"); выберет первого вложенного потомка.

(Возможно, самым лучшим решением было бы, если бы идентификаторы были уникальными, но я не знаю, поддерживает ли CF7 многократное внедрение формы при сохранении уникальных идентификаторов. Или выберите входные данные на основе других (пользовательских) свойств иродитель.)

0 голосов
/ 05 декабря 2018

если вы используете jquery, присвойте формам класс, а вы можете сделать jQuery ('. Form_id'). First (). What_function_you_want_to_call () и получить последнюю форму, заменив first () на last ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...