layui 表格内嵌套input 输入框,还可以动态添加行,纯js方法或者HTML方法 ,删除行,提交表格内表单到json
时间: 2024-03-12 09:45:02 浏览: 98
好的,我来为您解答。
首先,需要在HTML中定义一个表格,并在表格中添加一个按钮,用于动态添加行。同时,每行都需要嵌套一个input输入框。
HTML代码如下:
```html
<table id="mytable">
<thead>
<tr>
<th>姓名</th>
<th>年龄</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="text" name="name[]"></td>
<td><input type="text" name="age[]"></td>
<td><button type="button" onclick="deleteRow(this)">删除</button></td>
</tr>
</tbody>
</table>
<button type="button" onclick="addRow()">添加行</button>
<button type="button" onclick="submitForm()">提交表单</button>
```
其中,`name[]`表示这是一个数组类型的表单元素,方便后面将表单数据转换成JSON格式。
接下来,我们需要编写JavaScript代码来实现动态添加行和删除行的功能。代码如下:
```javascript
// 添加行
function addRow() {
var tbody = document.querySelector("#mytable tbody");
var tr = document.createElement("tr");
tr.innerHTML = `
<td><input type="text" name="name[]"></td>
<td><input type="text" name="age[]"></td>
<td><button type="button" onclick="deleteRow(this)">删除</button></td>
`;
tbody.appendChild(tr);
}
// 删除行
function deleteRow(btn) {
var tr = btn.parentNode.parentNode;
tr.parentNode.removeChild(tr);
}
```
最后,我们需要将表单数据转换成JSON格式,并进行提交。代码如下:
```javascript
// 提交表单
function submitForm() {
var form = document.querySelector("#mytable");
var formData = new FormData(form);
var data = {};
for (var [key, value] of formData.entries()) {
if (!data[key]) {
data[key] = value;
} else if (Array.isArray(data[key])) {
data[key].push(value);
} else {
data[key] = [data[key], value];
}
}
var jsonData = JSON.stringify(data);
console.log(jsonData);
// 在这里进行表单提交
}
```
这样,我们就完成了layui表格内嵌套input输入框,动态添加行,删除行,提交表格内表单到JSON格式的实现。
阅读全文