[英]Add user input to list on button click in JavaScript
我正在尝试创建一个HTML表单,该表单从多个文本框(在本例中为3个)中获取文本,并将每个文本框的内容添加到单独div中的列表中,以及通过以下方式创建新对象“ employee”单击一个按钮。 我的目标是模拟使用员工ID,名字和姓氏作为变量将员工添加到数据库。 我正在寻找使用纯JavaScript完成此操作。
到目前为止,我有:
<form>
ID Number:
<br>
<input type="text" id="idNumber">
<br>First name:
<br>
<input type="text" id="firstName">
<br>Last name:
<br>
<input type="text" id="lastName">
</form>
<br>
<button type="submit" onclick="myFunction(list)">Submit</button>
<div id="container">
<ul id="list"></ul>
</div>
在单独的JavaScript文件中:
function myFunction(list){
var text = document.getElementById("idNumber","fName","lName").value;
var li = "<li>" + text + "</li>";
document.getElementById("list").replaceChild(li);
}
当我调试代码时,似乎可以很好地设置值,但是我没有收到列表的实际输出。
您选择的所有输入元素都没有类名。 您也可以使用document.getElementById
进行此操作。 只需将ID添加到所有表单元素即可。
您的代码应如下所示。
function myFunction(list){
var text = "";
var inputs = document.querySelectorAll("input[type=text]");
for (var i = 0; i < inputs.length; i++) {
text += inputs[i].value;
}
var li = document.createElement("li");
var node = document.createTextNode(text);
li.appendChild(node);
document.getElementById("list").appendChild(li);
}
http://jsfiddle.net/nb5h4o7o/3/
您的列表没有被追加,因为您实际上并未在创建元素。 replaceChild
应该是appendChild
并且您应该已经使用document.createElement
创建了一个列表元素。
您的代码充满了问题,请查看document.getElementById
和Node.replaceChild
文档。
我为您创建了一个版本,可以获取表单的所有input
元素(使用querySelectorAll
),然后使用Array.prototype.map
将它们转换为"<li>[value]</li>"
,然后Array.prototype.join
将该数组转换为单个字符串。
然后,我们获取该字符串并设置#list.innerHTML
属性。
document.querySelector('button').addEventListener('click', function(e) { var form = document.querySelector('form'), list = document.getElementById('list'); list.innerHTML = [].map.call(form.querySelectorAll('input'), function(el) { return '<li>' + el.value + '</li>'; }).join(''); });
<form> ID Number: <br> <input type="text" id="idNumber"> <br>First name: <br> <input type="text" id="firstName"> <br>Last name: <br> <input type="text" id="lastName"> </form> <br> <button type="submit">Submit</button> <div id="container"> <ul id="list"></ul> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.