如何获取输入的包含形式?

2022-08-30 04:49:04

当我只有对输入的引用时,我需要获取对该输入的FORM父级的引用。这在 JavaScript 中是可能的吗?如果您愿意,请使用jQuery。

function doSomething(element) {
    //element is input object
    //how to get reference to form?
}

这不起作用:

var form = $(element).parents('form:first');

alert($(form).attr("name"));

答案 1

作为输入的本机 DOM 元素也具有指向它们所属形式的属性:form

var form = element.form;
alert($(form).attr('name'));

根据w3schools的说法,输入字段的属性由IE 4.0 +,Firefox 1.0 +,Opera 9.0 +支持,这是jQuery保证的更多浏览器,所以你应该坚持这一点。.form

如果这是不同类型的元素(不是 ),则可以找到最接近的父元素::<input>

var $form = $(element).closest('form');
alert($form.attr('name'));

另外,请参阅此MDN链接的属性:formHTMLInputElement


答案 2

每个输入都有一个属性,该属性指向输入所属的形式,因此只需:form

function doSomething(element) {
  var form = element.form;
}