【问题标题】:Javascript & Listbox Item RemovalJavascript 和列表框项目删除
【发布时间】:2011-07-21 17:11:49
【问题描述】:

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

该按钮触发以下 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);
        }            
    }
}

我做错了什么?这似乎应该可以工作。

感谢您的任何/所有建议,

杰森

【问题讨论】:

    标签: javascript asp.net listbox


    【解决方案1】:

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

    【讨论】:

    • 谢谢你——唯一的问题是结果中可以有多个匹配项。所以我只是把“i = i - 1”放在 lstRsns.remove(i) 的下面;代码。想不出那个,谢谢!!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    • 1970-01-01
    • 2020-12-07
    • 2010-11-29
    相关资源
    最近更新 更多