获取表单的ID?

Rol*_*and 13 jquery closest

我正在使用以下代码将事件附加到表单的提交按钮:

$('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;
});
Run Code Online (Sandbox Code Playgroud)

你可以看到我也试图获取表单的id,但是当我检查控制台时我得到了(an empty string).为什么这样,我如何正确获取表单的ID?

dea*_*oni 31

你有没有尝试过?

var user_id = $(this).closest("form").attr('id');
Run Code Online (Sandbox Code Playgroud)

元素的id是一个属性,您可以使用.attr()提取任何属性(包括id).

.val()用于提取元素的值,这在表单中没有意义.

更多信息:

.val().attr
()


Mil*_*lan 8

试试这个.假设页面上有一个单一表格.

 var formid = $('form').attr('id');
Run Code Online (Sandbox Code Playgroud)

会帮助你.


Did*_*hys 5

.val()用于获取表单元素的值,而不是属性.

使用.attr():

var user_id = $(this).closest("form[id]").attr('id');
Run Code Online (Sandbox Code Playgroud)

您还可以提取 DOMElement并使用纯JavaScript来获取ID:

var user_id = $(this).closest("form[id]")[0].id;
Run Code Online (Sandbox Code Playgroud)