Javascript 合并两个html表单中的数据元素无法正常工作

Javascript 合并两个html表单中的数据元素无法正常工作,javascript,jquery,html,forms,dom,Javascript,Jquery,Html,Forms,Dom,我正在尝试将两个HTML表单中的数据组合起来,然后将其作为一个表单发布,这很好,只是有些元素没有从一个表单复制到另一个表单。我已经定义了以下javascript函数来组合表单元素: var form = document.forms['auth_form']; var issuedata = window.opener.document.getElementById('Create').elements; for (var i = 0; i < issuedata.len

我正在尝试将两个HTML表单中的数据组合起来,然后将其作为一个表单发布,这很好,只是有些元素没有从一个表单复制到另一个表单。我已经定义了以下javascript函数来组合表单元素:

var form = document.forms['auth_form'];
    var issuedata = window.opener.document.getElementById('Create').elements;
     for (var i = 0; i < issuedata.length; i++) {
         var data = issuedata[i];
         alert(data.innerHTML);
         if(data.type !== "submit")
         form.appendChild(data);     
     }
var form=document.forms['auth_form'];
var issuedata=window.opener.document.getElementById('Create').elements;
对于(变量i=0;i
实际文件 这是第一种形式:

    <!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript">
var childWindow = null;
function child_open() {

    childWindow = window.open('new.html', "_blank",
            "resizable=no,width=600, height=280,top=200,left=200");

}
function parent_disable() {
    if (childWindow && !childWindow.closed)
        childWindow.focus();
}
</script>
</head>
<body onclick="parent_disable();">
<input type="button" value="Create Jira Ticket" onclick="child_open()" />
<form name="auth_form" id="Create" method="post">
        <input name="bug_status" value="NEW" type="hidden">
        <input name="rep_platform" value="All" type="hidden">
        <input name="component" value="AFAS" type="hidden">
        <input name="bug_severity" value="Beeper Call" type="hidden"/>
        <input type="hidden" name="comment" value="hello hi"><br>

</form>
</body>
</html>

var childWindow=null;
函数child_open(){
childWindow=window.open('new.html',“\u blank”,
“可调整大小=否,宽度=600,高度=280,顶部=200,左侧=200”);
}
函数父函数_disable(){
if(childWindow&!childWindow.closed)
childWindow.focus();
}

这是第二种形式:


var计数=0;
函数提交和关闭(){
var form=document.forms['auth_form'];
var issuedata=window.opener.document.getElementById('Create').elements;
对于(变量i=0;i
密码:

尝试将第二个表单从

var issuedata = window.opener.document.getElementById('Create').elements;


。。。并将所有
innerHTML
替换为
outerHTML
尝试将第二个表单从

var issuedata = window.opener.document.getElementById('Create').elements;


。。。并将所有
innerHTML
替换为
outerHTML
。元素
返回元素的实时集合。当您从集合中附加一个元素时,它将从集合中删除,因此您在集合中的索引
i
将不同步,因此将跳过所有其他元素

相反,只需附加集合中的第一个元素,直到集合为空。(遇到submit按钮元素时,只需将其分离)。或者,从最后一个循环到第一个,而不是从第一个循环到最后一个



(querySelectorAll()之所以有效,是因为它返回的是静态集合,而不是活动集合。)

.elements
返回活动的元素集合。当您从集合中附加一个元素时,它将从集合中删除,因此您在集合中的索引
i
将不同步,因此将跳过所有其他元素

相反,只需附加集合中的第一个元素,直到集合为空。(遇到submit按钮元素时,只需将其分离)。或者,从最后一个循环到第一个,而不是从第一个循环到最后一个



(querySelectorAll()之所以有效,是因为它返回的是一个静态集合,而不是一个活动集合。)

它不会从create form中提取任何元素很高兴听到:)它不会从create form中提取任何元素很高兴听到:)好的,那么我如何从集合中附加第一个元素?我想这就是我通过循环所做的,无论先到的是哪一个,我都会将它附加到表单中。现在我明白了你所说的附加第一个元素是什么意思了。在循环中,我只使用索引0,因为集合已经缩小了1。好的,那么我如何从集合中追加第一个元素?我想这就是我通过循环所做的,无论先到的是哪一个,我都会将它附加到表单中。现在我明白了你所说的附加第一个元素是什么意思了。在循环中,我只使用索引0,它可以工作,因为集合已经缩小了1。