У меня есть несколько форм на одной странице. Поэтому одинаковые идентификаторы на одной странице будут конфликтовать, поэтому я хочу динамически передавать идентификатор, например, используя текущую форму формы 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.
Почему бы не исправить вашу страницу, чтобы ваш HTML был действительным, вместо того, чтобы пытаться обойти повторяющиеся идентификаторы?
@RoryMcCrossan да. Я использую один и тот же js для всех форм, должен быть на одной странице
Это хорошо - и идеальный случай для использования общего класса, как я упоминал выше.
Я добавил ответ ниже, чтобы сделать логику HTML и JS более понятной.
Я не думаю, что вам нужен ни класс, ни идентификатор, так как вы можете просто поставить submit() на всех и использовать this внутри него.
@Lain Как вы можете объяснить мне вкратце.
@Husna $('form').on('submit', function() {/** do something **/})
@Husna: Тот, что выше. Просто используйте this вместо do something или $(this) в jQuery.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Похоже, вы пытаетесь обойти проблему повторяющихся атрибутов 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?
Вы не можете использовать один и тот же id на нескольких элементах. Это недействительный код.
Похоже, вы пытаетесь обойти проблему повторяющихся атрибутов
id, которых у вас быть не должно. Просто используйте вместо этого обычныйclassво всех формах.