Javascript&列表框项目删除

时间:2011-07-21 17:11:49

标签: javascript asp.net listbox

我有一个带有列表框,文本框和按钮的简单aspx页面。列表框在page_load事件中加载,包含40个左右的项目。

该按钮会触发以下javascript,该javascript应该删除任何不包含用户在文本框中键入的值的列表框项。基本上,它应该是一个搜索工具。

问题是,它只删除了大约一半的项目。我必须单击按钮4次才能最终获得第一次点击时应该得到的结果。这是功能:

function Search()
{
var strSearch = document.getElementById("<%= txtSearch.clientID %>").value;
var lstRsns = document.getElementById("<%= lstReasons.clientID %>");
var Temp;
var i;

for(i=0;i<lstRsns.options.length;i++)
    {
    Temp = lstRsns.options[i].text.toUpperCase();
    if (Temp.indexOf(strSearch.toUpperCase()) == -1)
        {
        lstRsns.remove(i);
        }            
    }
}

我做错了什么?这似乎应该有用。

感谢您提供任何/所有建议,

杰森

1 个答案:

答案 0 :(得分:2)

当您删除元素时,列表会不断缩短..只需在循环中执行lstRsns.remove(0);,直到找到您正在查找的元素lstRsns.remove(1);之后。