2017-10-04 78 views
0

我有一個表單。Javascript:插入表單

我想在按鈕字段前面插入一個新的子輸入字段,父窗體就是這樣。

當我試圖讓形式:

var form = document.getElementsByTagName('form'); 

我得到一個HTML集合,而不是一個節點,所以我不能使用的形式作爲父母。

有任何解決方案來獲取窗體作爲節點,而不添加id或類(因爲我沒有控制HTML/CSS)?

如果頁面上有多個表單而不是一個表單,該怎麼辦?

+0

那麼讀取集合中的第一項?所以你點擊這個按鈕,它將一個字段添加到當前表單中?所以你可以使用該按鈕來確定表單。 – epascarello

+0

您必須遍歷所有表單元素,並在其中找到使目標表單唯一的內容(即:輸入字段名稱)。 –

回答

2

因此,假設他們點擊按鈕,您可以使用它來引用表單。

document.querySelector("button").addEventListener("click", function (e) { 
 
    e.preventDefault() 
 
    console.log(this.form); 
 
});
<form> 
 
    <button>FOO</button> 
 
</form>

正如我在評論中說,如果你有一個形式大於你剛纔提到的第一個索引

var form = document.getElementsByTagName('form')[0]; 

,或者您可以使用querySelector返回的第一個實例

var form = document.querySelector('form'); 
+0

只是一個用例,如果沒有與文檔中的第一個按鈕關聯的表單會怎麼樣。 – bhansa

+0

代碼示例只是選擇一個按鈕..... – epascarello

1
var forms = document.getElementsByTagName('form'); 
var firstForm = forms[0]; 
0

你ar的方式獲取表單後,它將返回表單元素數組。如果只有一個表單,則必須使用返回數組的索引0。在代碼中再寫一行來從數組中獲取表單。

var form = document.getElementsByTagName('form'); 
form = form[0];