Получить идентификатор формы?

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

$('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). Почему это и как я могу получить идентификатор формы?

Ответ 1

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

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

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

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

Дополнительная информация:

.val()
.attr()

Ответ 2

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

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

Поможет тебе.

Ответ 3

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

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

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

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

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

Ответ 4

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

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

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