use*_*218 8 html javascript forms
我正在开发一个表单,允许用户通过单击按钮添加额外的输入字段。
它基本上看起来像这样:
<div>
<input type="text" placeholder="existing"/>
</div>
<button class="add">add</button>
Run Code Online (Sandbox Code Playgroud)
使用一点 JavaScript:
var add = document.querySelector(".add");
var div = document.querySelector("div");
add.addEventListener('click', function () {
div.innerHTML += '<input type="text" placeholder="new"/>';
});
Run Code Online (Sandbox Code Playgroud)
但是,我注意到,当单击按钮时 - 如果任何现有输入字段有值,它们就会被清除。
我已经摆弄了一段时间,似乎找不到解决方案来阻止这种情况发生,所以我想知道这里是否有人可以提供帮助。
这是一个小提琴http://jsfiddle.net/gxzLZ/
创建一个元素,更改outerHTML
然后使用appendChild
。
add.addEventListener('click', function () {
var newInput = document.createElement('input');
newInput.outerHTML = '<input type="text" placeholder="new"/>';
div.appendChild(newInput);
});
Run Code Online (Sandbox Code Playgroud)
如果你尝试,console.log(div.innerHTML)
你会看到打印的 HTML 是:
<input type="text" placeholder="existing"><input type="text" placeholder="new">...
Run Code Online (Sandbox Code Playgroud)
当您在 中键入内容时,<input>
您不会编辑输入值。您需要保留原始内容并避免每次都覆盖整个div
内容
我将这样做: http: //jsfiddle.net/gxzLZ/5/
JS
var add = document.querySelector(".add");
var div = document.querySelector("div");
add.addEventListener('click', function () {
var input = document.createElement('input')
input.type = "text";
input.placeholder = "new";
div.appendChild(input);
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4027 次 |
最近记录: |