我有3个动态下拉列表,它们正在上一个下拉列表的onchange事件中填充。 onchange,我可以填充下拉列表,但面临问题的地方是,如果我从任何下拉列表中更改选择,新值将附加到后续下拉列表中而不是替换。
以下是我的代码:
Dropdown1: <select id="ddlFiles" onchange="GetNamedItems()">
<option diasbled="disabled">Select File</option>
</select>
Dropdown2: <select id="ddlNamed" onchange="GetColumns()">
Dropdown3: <select id="ddlColumn" onchange="GetColumnsY()">
function GetNamedItems()
{
for (var i=0; i <namedItem.length;++i)
{
var list = document.getElementById('ddlNamed');
var newListItem = document.createElement('OPTION');
var listInfo=namedItem[i];
var box = listInfo;
newListItem.text = box;
newListItem.value = box;
list.add(newListItem);
}}
同样适用于其他下拉列表。
答案 0 :(得分:1)
在追加新内容之前删除内容
function GetNamedItems() {
var list = document.getElementById('ddlNamed');
list.innerHTML = '<option diasbled="disabled">Select File</option>';
for (var i = 0; i < namedItem.length; ++i) {
var newListItem = document.createElement('OPTION');
var listInfo = namedItem[i];
var box = listInfo;
newListItem.text = box;
newListItem.value = box;
list.add(newListItem);
}
}
答案 1 :(得分:0)
我昨天确实遇到了这个问题,表格重置功能。</ p>
关键是:
$(select).empty();
然后重新填充下拉菜单。 。
答案 2 :(得分:0)
不确定你的问题。在添加新的
之前尝试使用.remove()$(select).remove();
答案 3 :(得分:0)
工作代码:
function GetNamedItems() {
var list = document.getElementById('ddlNamed');
$('#ddlNamed').find('option:gt(0)').remove();
for (var i = 0; i < namedItem.length; ++i) {
var newListItem = document.createElement('OPTION');
var listInfo = namedItem[i];
var box = listInfo;
newListItem.text = box;
newListItem.value = box;
list.add(newListItem);
}
}