javascript - style - html title tag



如何獲得輸入的表單父項? (7)

當我只有一個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"));

https://src-bin.com


Answer #1

使用jQuery

function doSomething(element) {
    var form = $(element).closest("form").get().
    //do something with the form.
}

Answer #2

如果使用jQuery並具有任何表單元素的句柄,則需要在使用.form之前獲取(0)元素

var my_form = $('input[name=first_name]').get(0).form;

Answer #3

我需要使用element.attr('form')而不是element.form

我在Fedora 12上使用firefox


Answer #4

每個輸入都有一個form屬性,它指向輸入所屬的表單,簡單說就是:

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

Answer #5

輸入的原生DOM元素也具有指向它們所屬窗體的form屬性:

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

根據w3schools說法,IE 4.0+,Firefox 1.0+,Opera 9.0+都支持輸入字段的.form屬性,這是jQuery保證的更多瀏覽器,所以你應該堅持這一點。

如果這是一種不同類型的元素(不是<input> ),則可以找到最接近的父元素:

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

另請參閱HTMLInputElementform屬性上的這個MDN鏈接:


Answer #6

這會工作嗎? (留下行動空白也回到自己身上,對吧?)

<form action="">
<select name="memberid" onchange="this.form.submit();">
<option value="1">member 1</option>
<option value="2">member 2</option>
</select>

“this”將是select元素,.form將是其父窗體。 對?


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

並在html中,您需要找到該元素,並添加attribut“form”以連接到該表單,請參閱http://www.w3schools.com/tags/att_input_form.asp但此表單不包含 attr 支持IE ,因為你需要直接傳遞表單ID。





input