Как передать идентификатор динамически с помощью jquery

У меня есть несколько форм на одной странице. Поэтому одинаковые идентификаторы на одной странице будут конфликтовать, поэтому я хочу динамически передавать идентификатор, например, используя текущую форму формы this. Я хочу проверить все формы, которые я написал, как это

$('form#test').on('submit', function(e) {}
<form method = "post" action = "script.php" id = "test" novalidate>
  //validation here
  <input type = "submit" name = "send" id = "send" value = "Send" />
</form>

this form id = "test" Я хочу передать текущий идентификатор в js.

Похоже, вы пытаетесь обойти проблему повторяющихся атрибутов id, которых у вас быть не должно. Просто используйте вместо этого обычный class во всех формах.

Rory McCrossan 08.06.2018 11:39

Почему бы не исправить вашу страницу, чтобы ваш HTML был действительным, вместо того, чтобы пытаться обойти повторяющиеся идентификаторы?

CertainPerformance 08.06.2018 11:40

@RoryMcCrossan да. Я использую один и тот же js для всех форм, должен быть на одной странице

Husna 08.06.2018 11:40

Это хорошо - и идеальный случай для использования общего класса, как я упоминал выше.

Rory McCrossan 08.06.2018 11:41

Я добавил ответ ниже, чтобы сделать логику HTML и JS более понятной.

Rory McCrossan 08.06.2018 11:43

Я не думаю, что вам нужен ни класс, ни идентификатор, так как вы можете просто поставить submit() на всех и использовать this внутри него.

Lain 08.06.2018 11:46

@Lain Как вы можете объяснить мне вкратце.

Husna 08.06.2018 11:48

@Husna $('form').on('submit', function() {/** do something **/})

treyBake 08.06.2018 11:49

@Husna: Тот, что выше. Просто используйте this вместо do something или $(this) в jQuery.

Lain 08.06.2018 11:50
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
9
129
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Похоже, вы пытаетесь обойти проблему повторяющихся атрибутов id, которых у вас быть не должно. Просто используйте вместо этого обычный class во всех формах. Если вам нужно определить, какая форма вызвала событие submit, например, чтобы получить его дочерние элементы input, используйте ключевое слово this. Попробуй это:

$('.example').on('submit', function(e) {  
  e.preventDefault();
  console.info(`You submitted the ${this.id} form!`);

  // validate the form here...
});
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form class = "example" method = "post" action = "script.php" id = "foo" novalidate>
  <input type = "submit" name = "send" id = "send" value = "Send" />
</form>

<form class = "example" method = "post" action = "script.php" id = "bar" novalidate>
  <input type = "submit" name = "send" id = "send" value = "Send" />
</form>

<form class = "example" method = "post" action = "script.php" id = "fizz" novalidate>
  <input type = "submit" name = "send" id = "send" value = "Send" />
</form>

<form class = "example" method = "post" action = "script.php" id = "buzz" novalidate>
  <input type = "submit" name = "send" id = "send" value = "Send" />
</form>

да, мы также можем использовать класс, но мой вопрос в том, что если мы будем использовать id?

Husna 08.06.2018 11:47

Вы не можете использовать один и тот же id на нескольких элементах. Это недействительный код.

Rory McCrossan 08.06.2018 11:47

Другие вопросы по теме