获取表单的ID?

问题描述 投票:13回答:4

我使用下面的代码附加一个事件到表单的提交按钮:

$('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?

jquery closest
4个回答
30
投票

你有没有尝试过?

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

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

.VAL()被用于提取元件,其是没有意义的形式的值。

更多信息:

.val() .attr()


8
投票

试试这个。假设有页面上的单个窗体。

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

对您会有帮助。


5
投票

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

使用.attr()

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

您也可以提取一个DOMElement和使用纯JavaScript来获取ID:

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

1
投票

尝试以下方法:

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

将尽快我测试这是回来了,还编辑。

© www.soinside.com 2019 - 2024. All rights reserved.