使用Javascript动态添加文本框中消失的文本

时间:2012-05-04 06:06:39

标签: javascript html

您可以使用以下代码

添加任意数量的文本框
<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个文本框并且还在这些文本框中写了一些内容,并且用户再次点击“添加文本框”按钮,那么用户插入的数据进入文本框就消失了。

5 个答案:

答案 0 :(得分:3)

innerHTML不保留用户输入。您应该将输入创建为新元素,并使用appendChild将元素附加到容器中,而不是使用innerHTML。

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

您可以使用jQuery.append

,而不是使用innerHTML

检查Fiddle此处

答案 3 :(得分:0)

使用jQuery更容易解决问题

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

答案 4 :(得分:0)

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

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

而不是

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