获取表单的ID?

时间:2012-03-13 13:42:44

标签: 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;
});

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

4 个答案:

答案 0 :(得分:30)

你试过吗?

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

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

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

更多信息:

.val()
.attr()

答案 1 :(得分:9)

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

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

会帮助你。

答案 2 :(得分:5)

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

使用.attr()

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

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

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

答案 3 :(得分:1)

尝试以下方法:

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

我会在测试后立即回复。