2011-07-21 4 views
2

リストボックス、テキストボックス、ボタン付きの単純な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); 
     }    
    } 
} 

私は間違っていますか?これはうまくいくようです。任意の/すべてのアドバイス、

ジェイソン

答えて

2

リストには、要素を削除するよう短縮し続けるため

おかげ..あなたはあなたが、その後探しているものを打つまで、ちょうどループでlstRsns.remove(0);を行いますlstRsns.remove(1);

+0

ありがとうございます - 結果に複数の一致が存在する可能性があります。だから私はちょうど "i = i - 1"をlstRsns.remove(i)の下に置く。コード。それを考え出したことはありませんでした、ありがとう!!! –

関連する問題