在JavaScript中单击按钮时将用户输入添加到列表
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>
相关文章:
- 使用javascript搜索具有用户输入的数组
- React Native通过Navigator将用户输入数据传递到选项卡栏IOS中的组件
- 我想在AngularJS应用程序中创建一个输入数字框,用户不应该在该框上键入十进制数字.(一个整数输入框)
- 如何使用JavaScript中的用户输入创建序列/序列
- 如何在用户输入时实例化数组
- 如何从客户端的数组中获取用户输入和返回值
- 如何在用户输入 javascript 时更改值
- 如何从多个不同的html页面获得mongodb文档的用户输入
- 阻止用户将脚本输入wordpress post
- PayPal按钮是否有一个简单的选项,其中金额基于一些用户输入
- 从表单中获取用户输入执行计算(操作顺序)并输出回该表单
- 我确实有一个表单,如果用户输入了输入,它应该检查否定或空的输入框,并抛出一条警告消息
- 用于输入用户信息的动态PHP代码
- 在MongoDB中输入用户名数组,并返回相同大小的id数组,对于不存在的用户名为null或false
- 如何通过文本字段输入用户数据,然后在文本字段的正下方显示
- 脚本自动输入用户凭据
- 如何获取用户文本输入用户创建输入的值,jQuery
- 在网站服务器上存储表单/输入/用户首选项数据有哪些不同的方法?
- 使用if语句输入用户文本
- 不能在indexedDB中输入用户信息后立即提取用户信息