【问题标题】:Get the ID of a form?获取表单的 ID?
【发布时间】:2012-03-29 22:06:51
【问题描述】:

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

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


    【解决方案1】:

    你试过了吗?

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

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

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

    更多信息:

    .val()
    .attr()

    【讨论】:

    【解决方案2】:

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

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

    会帮你的。

    【讨论】:

    • 假设页面上没有多个表单
    【解决方案3】:

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

    使用.attr():

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

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

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

    【讨论】:

      【解决方案4】:

      尝试以下方法:

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

      我会在测试后立即进行编辑。

      【讨论】:

        猜你喜欢
        • 2020-08-29
        • 2018-12-21
        • 1970-01-01
        • 1970-01-01
        • 2010-11-27
        • 2013-07-07
        • 2019-08-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多