使用dependent dropdown追加行是一种常见的前端开发技术,用于实现根据前一个下拉列表的选择,动态加载后一个下拉列表的选项,并在选择后追加新的行。
实现dependent dropdown追加行的步骤如下:
下面是一个示例代码,演示如何使用dependent dropdown追加行:
HTML代码:
<form id="myForm">
<div>
<label for="category">Category:</label>
<select id="category" onchange="loadSubcategories()">
<option value="">Select category</option>
<option value="1">Category 1</option>
<option value="2">Category 2</option>
<option value="3">Category 3</option>
</select>
</div>
<div>
<label for="subcategory">Subcategory:</label>
<select id="subcategory">
<option value="">Select subcategory</option>
</select>
</div>
<button type="button" onclick="addRow()">Add Row</button>
</form>
<table id="myTable">
<thead>
<tr>
<th>Category</th>
<th>Subcategory</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<select>
<option value="">Select category</option>
<option value="1">Category 1</option>
<option value="2">Category 2</option>
<option value="3">Category 3</option>
</select>
</td>
<td>
<select>
<option value="">Select subcategory</option>
</select>
</td>
</tr>
</tbody>
</table>
JavaScript代码:
function loadSubcategories() {
var category = document.getElementById("category").value;
var subcategorySelect = document.getElementById("subcategory");
subcategorySelect.innerHTML = "<option value=''>Select subcategory</option>";
if (category !== "") {
// 发送AJAX请求,获取与选择相关的数据
// 可以使用fetch或XMLHttpRequest等方式发送请求
// 示例中使用setTimeout模拟异步请求
setTimeout(function() {
// 假设返回的数据为JSON格式,包含subcategories字段
var data = {
subcategories: [
{ id: 1, name: "Subcategory 1" },
{ id: 2, name: "Subcategory 2" },
{ id: 3, name: "Subcategory 3" }
]
};
// 动态加载下拉列表选项
data.subcategories.forEach(function(subcategory) {
var option = document.createElement("option");
option.value = subcategory.id;
option.textContent = subcategory.name;
subcategorySelect.appendChild(option);
});
}, 500); // 模拟延迟
}
}
function addRow() {
var table = document.getElementById("myTable");
var newRow = table.insertRow();
var categoryCell = newRow.insertCell();
var categorySelect = document.createElement("select");
categorySelect.innerHTML = document.getElementById("category").innerHTML;
categoryCell.appendChild(categorySelect);
var subcategoryCell = newRow.insertCell();
var subcategorySelect = document.createElement("select");
subcategorySelect.innerHTML = "<option value=''>Select subcategory</option>";
subcategoryCell.appendChild(subcategorySelect);
}
以上代码实现了一个简单的dependent dropdown追加行的功能。当选择第一个下拉列表的选项时,会动态加载第二个下拉列表的选项,并在点击"Add Row"按钮时追加新的行,新行中包含两个下拉列表。
这个技术可以应用于各种场景,例如商品分类与子分类、地区与城市选择等。具体的应用场景和实现方式会根据具体需求而有所不同。
推荐的腾讯云相关产品和产品介绍链接地址:
请注意,以上推荐的腾讯云产品仅供参考,具体选择和使用需根据实际需求和情况进行评估和决策。
领取专属 10元无门槛券
手把手带您无忧上云