当我只有对该INPUT的引用时,我需要获得对INPUT的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"));
答案 0 :(得分:166)
作为输入的原生DOM元素也有一个form
属性,指向它们所属的形式:
var form = element.form;
alert($(form).attr('name'));
根据w3schools,IE 4.0 +,Firefox 1.0 +,Opera 9.0+支持输入字段的.form
属性,这是jQuery保证的更多浏览器,所以你应该坚持此
如果这是一种不同类型的元素(不是<input>
),您可以找到距离最近的父closest
:
var $form = $(element).closest('form');
alert($form.attr('name'));
另请参阅form
的{{1}}媒体资源上的此MDN链接:
答案 1 :(得分:36)
每个输入都有一个form
属性,指向输入所属的形式,所以简单地说:
function doSomething(element) {
var form = element.form;
}
答案 2 :(得分:4)
我使用了一些jQuery和旧式javascript - 少了代码
$($(this)[0].form)
这是对包含元素
的表单的完整引用答案 3 :(得分:3)
使用jQuery:
function doSomething(element) {
var form = $(element).closest("form").get().
//do something with the form.
}
答案 4 :(得分:2)
我需要使用element.attr('form')
代替element.form
。
我在Fedora 12上使用Firefox。
答案 5 :(得分:2)
如果使用jQuery并拥有任何表单元素的句柄,则需要在使用.form之前获取(0)元素
var my_form = $('input[name=first_name]').get(0).form;
答案 6 :(得分:2)
function doSomething(element) {
var form = element.form;
}
并在html中,您需要找到该元素,并添加attribut“表单”以连接到该表单,请参阅http://www.w3schools.com/tags/att_input_form.asp 但是这个表单attr 不支持IE ,因为你需要直接传递表单id。
答案 7 :(得分:0)
简单地说:
alert( $(this.form).attr('name') );
答案 8 :(得分:0)
还有一个......
var _e = $(e.target); // e being the event triggered
var element = _e.parent(); // the element the event was triggered on
console.log("_E " + element.context); // [object HTMLInputElement]
console.log("_E FORM " + element.context.form); // [object HTMLFormElement]
console.log("_E FORM " + element.context.form.id); // form id
答案 9 :(得分:0)
事件侦听器调用此Javascript函数示例以标识表单
function submitUpdate(event) {
trigger_field = document.getElementById(event.target.id);
trigger_form = trigger_field.form;
答案 10 :(得分:-2)
<form action="">
<select name="memberid" onchange="this.form.submit();">
<option value="1">member 1</option>
<option value="2">member 2</option>
</select>
&#34;这&#34;将是select元素,.form将是其父元素。正确?