1

您可以添加任意数量的文本框,如使用以下代码所示

<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.js"></script>
<script type="text/javascript">
var i=2;
function AddTextbox(){
container.innerHTML=container.innerHTML+'<input type="text" name="'+ i + '" id="'+ i + '">' + '</br>';
i++;
}
</script>

</head>
<body>
<form action="next.php" method="post" >
<input type="text" name="1" id="1" />
<input type="button" onClick="AddTextbox();" value="add" />
<input type="submit" value="submit" />
<div id="container"></div>
</form>
</body>
</html>

我得到的唯一问题是,如果用户添加了 2 个文本框并且还在这些文本框中写了一些东西,并且用户再次单击“添加文本框”按钮,那么用户将数据插入到文本框中消失。

4

5 回答 5

3

innerHTML 不保留用户输入。与其使用 innerHTML,不如将输入创建为新元素并使用 appendChild 将元素附加到容器中。

这将使其他输入元素保持不变,而不是用对 innerHTML 的调用来替换它们。

于 2012-05-04T06:09:47.173 回答
0

不要设置 container.innerHTML,因为您之前已经引用了 jQuery,请执行以下操作:

$(container).append('<input type="text" ...etc...

于 2012-05-04T06:10:45.407 回答
0

您可以使用 jQuery.append 而不是使用 innerHTML

在这里检查小提琴

于 2012-05-04T06:12:22.253 回答
0

使用 jQuery 更容易解决问题

$('#container').append('<input type="text"  ');
于 2012-05-04T06:15:47.060 回答
0

更改按钮名称,如下所示:

<input type="submit2" onClick="AddTextbox();" value="add" />

代替

<input type="button" onClick="AddTextbox();" value="add" />
于 2012-07-16T19:43:41.850 回答