2017-10-04 53 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];