在html中有一个选择商品的选择框和输入数量的输入框,我希望用户手动添加几个这种框
时间: 2024-12-15 13:29:20 浏览: 4
在HTML中,为了实现让用户动态添加多个选择商品和输入数量的输入框,可以采用JavaScript配合HTML来创建动态生成的表单元素。你可以使用`<div>`元素作为容器,并利用`JavaScript`的DOM操作来动态创建`<input type="checkbox">`, `<label>`, 和 `<input type="number">`。
下面是一个简单的示例:
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>动态添加表单</title>
<style>
.add-item {
margin-bottom: 10px;
}
</style>
</head>
<body>
<h2>添加商品:</h2>
<button onclick="addItem()">+ 添加</button>
<div id="dynamic-form" class="add-item">
<!-- 初始的表单结构 -->
<input type="checkbox" name="product[]" id="product_0">
<label for="product_0">产品1</label>
<input type="number" name="quantity[]" min="1" id="quantity_0">
<!-- 动态生成的部分将隐藏并由JS显示 -->
<input type="hidden" id="counter" value="0">
</div>
<script>
function addItem() {
// 获取当前已有的行数
var counter = parseInt(document.getElementById('counter').value) + 1;
// 创建新的行并插入到表格
var newRow = document.createElement('div');
newRow.className = 'add-item';
var checkbox = document.createElement('input');
checkbox.type = 'checkbox';
checkbox.name = 'product[]';
checkbox.id = 'product_' + counter;
newRow.appendChild(checkbox);
var label = document.createElement('label');
label.for = 'product_' + counter;
label.textContent = '产品' + counter;
newRow.appendChild(label);
var quantityInput = document.createElement('input');
quantityInput.type = 'number';
quantityInput.name = 'quantity[]';
quantityInput.id = 'quantity_' + counter;
quantityInput.min = '1';
newRow.appendChild(quantityInput);
// 将新行添加到动态表单中
document.getElementById('dynamic-form').appendChild(newRow);
document.getElementById('counter').value = counter; // 更新计数器
}
</script>
</body>
</html>
```
在这个例子中,点击“+ 添加”按钮会调用`addItem()`函数,每次增加一行包含一个复选框、标签和数量输入框。用户可以选择商品并输入数量,每个新增的行都是独立的。
阅读全文