1

为什么单击输入按钮时,以下代码没有添加另一个文本输入字段?add another field

<html>
<head>
<script>
function add_field() 
{
var elem = document.createElement("input");
elem.setAttribute('type','text');
elem.setAttribute('name','user');
document.body.insertBefore(elem, document.getElementById('su'));
}
</script>
</head>
<body>
<form name="input" method="get">
Put input here:<br> 
<input type="text" name="user">
<input type="button" onclick="add_field()" value="Add another field"><br>
<input id="su" type="submit" value="Submit"><br>
</form>
</body>
</html>
4

2 回答 2

5

根据MDN 参考页面,您需要调用parent.insertBefore(newElem, referenceElem)。在您的示例中,我认为那<form>是父母,而不是<body>. 将函数的最后一行更改为:

var target = document.getElementById('su');
target.parentNode.insertBefore(elem, target);

会让它工作。

于 2012-10-02T09:45:38.503 回答
1

jQuery解决方案在这里

<form name="input" method="get">
  Put input here:<br> 
  <input id='ap' type="text" name="user">
  <input id="addField" type="button" value="Add another field"><br>
  <input id="su" type="submit" value="Submit"><br>
</form>

JavaScript

$('#addField').click(function(e)
{
    $('<input type="text" />').insertBefore('#su')
});​​
于 2012-10-02T09:52:33.440 回答