Получить идентификатор формы? - PullRequest
13 голосов
/ 13 марта 2012

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

$('form.manage-users-form').on('click','button.special',function() {

    if ($(this).hasClass('selected')){
        console.log('This user is already special');
    } else {

        $(this).parent().find('button').removeClass('selected');
        $(this).addClass('selected');

        var user_id = $(this).closest("form[id]").val();

        console.log('This user is now special');
        console.log(user_id);
    }
    return false;
});

И вы можете видеть, что я также пытаюсь получить идентификатор формы, нокогда я проверяю консоль, я получаю (an empty string).Почему так и как я могу правильно получить идентификатор формы?

Ответы [ 4 ]

30 голосов
/ 13 марта 2012

Вы пробовали?

var user_id = $(this).closest("form").attr('id');

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

.val () используется для извлечения значения элемента, которое не имеет смысла в форме.

Подробнее:

.val ()
.attr ()

8 голосов
/ 07 июля 2014

Попробуйте вместо этого. Предполагая, что на странице есть единая форма.

 var formid = $('form').attr('id');

Поможет вам.

5 голосов
/ 13 марта 2012

.val () используется для получения значения элементов формы, а не атрибута.

Используйте .attr () :

var user_id = $(this).closest("form[id]").attr('id');

Вы также можете извлечь элемент DOME и использовать чистый JavaScript для получения идентификатора:

var user_id = $(this).closest("form[id]")[0].id;
1 голос
/ 13 марта 2012

Попробуйте следующее:

  var user_id = $(this).closest("form").attr("id");

Вернется с редактированием, как только я протестирую это.

...