javascript - 创建表单元素
问题描述
我正在尝试创建一个表单,用户可以在其中填写他的全名输入。我创建了一个简单的表单,但该表单仅显示名字输入。我正在考虑完成任务的 forEach 方法,但没有正确理解如何完成它。还是我应该研究另一种方式?我也考虑过创建“第二名”和“第三名”元素,但这种方式不适合我。谢谢
const nameInput = document.querySelector('.name');
const button = document.querySelector('.button')
const lists = document.querySelector('.lists')
function addName(evt) {
evt.preventDefault();
const listItem = document.createElement('li');
listItem.textContent = nameInput.value;
lists.appendChild(listItem);
nameInput.value = '';
}
button.addEventListener('click', addName);
<form class="form">
<input type="text" class="name" placeholder="Имя">
<input type="text" class="name" placeholder="Фамилия">
<input type="text" class="name" placeholder="Отчество">
<button type="submit" class="button">ОК</button>
</form>
<div class="block">
<ul class="lists"></ul>
</div>
解决方案
如果您想在每次按下按钮时从表单中获取名称并列出它们的列表项,您可以使用querySelectorAll
选择所有名称输入并遍历它们以获取名称。
const nameInputs = document.querySelectorAll('.name');
const button = document.querySelector('.button')
const lists = document.querySelector('.lists')
function addName(evt) {
evt.preventDefault();
const listItem = document.createElement('li');
var names = []
nameInputs.forEach(i =>{
names.push(i.value);
i.value = '';
});
listItem.textContent = names.join(' ');
lists.appendChild(listItem);
}
button.addEventListener('click', addName);
<form class="form">
<input type="text" class="name" placeholder="Имя">
<input type="text" class="name" placeholder="Фамилия">
<input type="text" class="name" placeholder="Отчество">
<button type="submit" class="button">ОК</button>
</form>
<div class="block">
<ul class="lists"></ul>
</div>
推荐阅读
- python - Pandas 数据框不允许我在 python 中删除第一个空列?
- javascript - 可以在自己的容器中使用 sqllite 吗?
- html - 当我设置身体的高度/宽度时出现问题
- c - 如何在没有malloc的情况下从mmap更改地址的值?
- python - 尝试设置两个 python 烧瓶服务器,80 以外的端口将不起作用
- java - 使用 JSONAssert 查找 json diff 失败
- sql - 在单独的列中获取结果数
- javascript - 使用事件处理程序基于媒体查询更改 javascript 函数
- sql-server - 来自不同 sql server 版本的证书
- java - 龙目岛项目安装。[java.lang.OutOfMemoryError]