insertBefore停止在表单中工作如果我添加div

时间:2016-04-12 03:07:42

标签: javascript html css

我创建了动态表单,我可以在其中添加尽可能多的作者。

<form action="uploadtodb.php" target="dummyframe" method="post" name="myform">
            <p>
            Authors last name:      <input type="text" name="authorln[]" size="32" />
            Authors first names:    <input type="text" name="authorfns[]" size="32" />
            </p>
            <p id="add_author_button">
            <button type="button" onclick="add_author()">Add new author</button>
            <button type="button" onclick="remove_author()">Remove last author</button>
            </p>
</form>

其中函数add_author()将 myform 新段落添加为

document.myform.insertBefore(para, document.getElementById("add_author_button"));

它完美无缺,但后来我想为它添加一些样式。所以我添加了div:

<form action="uploadtodb.php" target="dummyframe" method="post" name="myform">
        <div id="authors">
            <p>
            Authors last name:      <input type="text" name="authorln[]" size="32" />
            Authors first names:    <input type="text" name="authorfns[]" size="32" />
            </p>
            <p id="add_author_button">
            <button type="button" onclick="add_author()">Add new author</button>
            <button type="button" onclick="remove_author()">Remove last author</button>
            </p>
        </div>
</form>

这样的修改后按钮没有响应。

1 个答案:

答案 0 :(得分:2)

虽然您可以对表单使用document.<form name>,但您不能对作者div之类的任意元素执行此操作。为什么不使用getElementById()

document.getElementById("authors").insertBefore(para, document.getElementById("add_author_button"));