Как проверить с помощью jQuery, если какая-либо форма отправлена? - программирование
Подтвердить что ты не робот

Как проверить с помощью jQuery, если какая-либо форма отправлена?

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

  • Дайте всем формам один и тот же идентификатор, который только заставлял первую форму действовать так, как я хотел, давая мне данные этой формы.
  • Дайте им все тот же идентификатор снова, на этот раз добавив уникальный идентификатор к ID, но, конечно же, мой jQuery $('#something') не поймает его, поскольку он не совпадает.

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

Помощь будет очень полезна!

Некоторый код в соответствии с запросом (только пример, чтобы показать, что я имею в виду, конечно):

HTML:

<form id="something-0"><input type="hidden" value="0"><input type="submit"></form>
<form id="something-1"><input type="hidden" value="1"><input type="submit"></form>

jQuery:

$("#something-%").submit(function(e) {
e.preventDefault();
$("#some-span").html(data);
});

Я хочу, чтобы # something-% принимал все, что приходит после "-", надеюсь, вы понимаете.

4b9b3361

Ответ 1

В качестве общего ответа, чтобы классифицировать группу элементов, используйте атрибут class, предоставляя каждому элементу одно и то же имя класса. Затем вы можете выбрать элементы этого класса. Элемент может иметь более одного класса.

$(".something");

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

$("[id^='something']");  // all elements with an id beginning with 'something'
$("[id$='something']");  // all elements with an id ending with 'something'

Для этого конкретного вопроса, поскольку вы хотите действовать в любой форме на странице, самым простым выбором было бы использовать селектор имен элементов:

$("form");

Независимо от селектора, вы можете определить, какая форма была отправлена ​​путем ссылки this в обработчике submit():

$("form").submit(function (e) {
    e.preventDefault();
    var formId = this.id;  // "this" is a reference to the submitted form
});

Ответ 2

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

$("form").submit(function() {
  var theForm = $(this);
  var formID = theForm.attr("id");
  // do something
});

Ответ 3

Что-то вроде этого...

   $('#myForm').submit(function (e) {
     e.preventDefault;
     if (e.result == true) {
       alert("This form was submitted!")
     }
   });