我正在使用以下代码将事件附加到表单的提交按钮:
$('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?
答案 0 :(得分:30)
你试过吗?
var user_id = $(this).closest("form").attr('id');
元素的id是一个属性,您可以使用.attr()提取任何属性(包括id)。
.val()用于提取元素的值,这在表单中没有意义。
更多信息:
答案 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");
我会在测试后立即回复。