javascript - 如何在运行时将选择列表设置为空?

标签 javascript html

我有一个从数据库获取列表的代码。 使用返回的数组,我动态创建一个网格表和两个组合框。现在,代码第一次运行良好。我还可以向数据库添加新条目并将其显示在网格中。现在问题出在组合框上。

每当我添加新条目时,表都会更新,方法是删除表中以前的内容并再次从数据库中获取新条目。 但是组合选项会附加新到达的数据。看,图像。 新增化学工程alt text

但我不知道重置或删除现有的组合框内容。我知道解决方案是一段使组合框为空的代码。 它必须放置在组合框生成代码的顶部。 因此,每次生成新元素之前它都会重置。

我的问题是如何在起点使该组合框为空。(我不知道确切的术语“空”或“重置”是什么,我对 DOM 元素还不熟悉)。

这是我的代码。

HTML 元素:

<select id="departmentField" >//Both using same data source. 
<select id="searchDepartments">

脚本: 它的DWR调用...我认为问题出在网格下面。

    EmployeeManagement.getDeptList(function(deptRecords) {
    $("#depts").clearGridData(true);
    $("#depts").jqGrid('addRowData', "deptID", deptRecords);

    var deptSearchSelect = document.getElementById('searchDepartments');
    var searchOptions = null;
    searchOptions = document.createElement('option');
    searchOptions.value = 0;
    searchOptions.innerHTML = "ALL";
    deptSearchSelect.appendChild(searchOptions);

    var depFieldSelect = document.getElementById('departmentField');
    var deptFieldOpts = null;
    deptFieldOpts = document.createElement('option');
    deptFieldOpts.value = 0;
    deptFieldOpts.innerHTML = "";
    depFieldSelect.appendChild(deptFieldOpts);

    for(i = 0; i<deptRecords.length; i++) { 


        var dept = deptRecords[i];
        searchOptions = document.createElement('option');
        searchOptions.value = dept.deptID;
        searchOptions.innerHTML = dept.deptName;
        deptSearchSelect.appendChild(searchOptions);

        deptFieldOpts = document.createElement('option');
        deptFieldOpts.value = dept.deptID;
        deptFieldOpts.innerHTML = dept.deptName;
        depFieldSelect.appendChild(deptFieldOpts);

    }

    deptSearchSelect.selectedIndex = "ALL";
    deptSearchSelect.selectedIndex = "";

    //var respDiv = document.getElementById("respCheck");
});

我该如何重置?

如有任何建议,我们将不胜感激

提前致谢!!!

最佳答案

尝试删除select中的每个元素:

while(deptSearchSelect.hasChildNodes()) {
    deptSearchSelect.removeChild(deptSearchSelect.firstChild);
}
while(depFieldSelect.hasChildNodes()) {
    depFieldSelect.removeChild(depFieldSelect.firstChild);
}

您是否也无法正确设置选择框?

关于javascript - 如何在运行时将选择列表设置为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3628853/

相关文章:

css - 溢出-x : scroll not working correctly

javascript - 尝试删除此代码而不需要将其放在单独的页面中

javascript - 验证两个输入字段的总和

html - 使用 css background-image 属性时如何获取图像?

javascript - 带逗号的 iOS 小键盘输入类型

javascript - 当有最小宽度时,如何使元素中心(水平)固定位置?

javascript - 转化为 if/else 语句

javascript - 在 ckeditor 中插入 html 会导致语法错误(laravel)

javascript - 如何获取有关 WebRTC PeerConnection 连接类型的信息?

javascript - 如何在express.js中的两个javascript文件之间传递参数