JQuery - какая форма была отправлена? - PullRequest
2 голосов
/ 09 февраля 2011

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

Я использую идентификатор продукта, чтобы создать отдельный класс формы и имя для каждой формы, поэтому каждая форма называется примерно так: this_form_name_567, а следующей будет this_form_name_568 и т. Д.

Для каждой формы есть кнопка отправки. У меня проблемы с выяснением

  1. Какое событие лучше использовать, чтобы при нажатии кнопки «Отправить» была определена правильная форма?

  2. После нажатия, как убедиться, что правильное значение взято из скрытого поля (уникальный идентификатор) в отправленной форме, чтобы я мог заполнить строку кода, такую ​​как:

    $.post("compare_response.php", {compare_this: $("#compare_this").val()}, function(data){
    }
    

Ответы [ 2 ]

2 голосов
/ 09 февраля 2011

Вы можете использовать метод обхода дерева .closest, чтобы получить форму, в которую вложена интересующая кнопка:

$("input[type=submit]").click(function() {
    alert($(this).closest("form").attr("id"));
});

или даже проще, просто получите свойство элемента form:)

$("input[type=submit]").click(function() {
    alert(this.form.id);
});

Вы можете попробовать это здесь.

1 голос
/ 09 февраля 2011

Вы можете получить форму, которую вы отправляете следующим образом:

$('form').submit(function() {
    var yourForm = $(this);
    var hiddenValue = $(this).find('input[type=hidden]').val();
});

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

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