1

我有一个由用户动态填充的列表框,其值由管道分隔值和名称组成。我使用键进行检查以确保没有添加两次相同的值,但之后我想对剩余的列表进行排序。

我的 JavaScript 看起来像这样:

function storeaccount(name, account, accountName, Nom)
    var count = 0;
    var key = name + "|" +  account + "|" + accountName + "|" + Nom;
    var listBox = document.getelementbyid(listbox);    
    for(var i = 0; i < listBox.options.length; i++){
        if(listBox.options[i].value == key)
        { count++;
        }
    }

    if (count < 0) {
        $('<%listbox.clientid%>')append('<option value="' + key + '"> + name + '</option>
    }

如何按名称对列表框进行排序,同时保持密钥完整,以便使用 jQuery 在我的重复检查中使用?

4

1 回答 1

2

如果我是正确的,您想按字母顺序对列表框进行排序。您还使用 JS 执行重复检查。

我想说,在完成重复检查过程(如 2 个松散集成的过程)之后,保留您所做的一切并在其之上执行排序操作。

以下是对列表框执行排序的方法:

    function SortList(listname) { 
        var $r = $(listname + " option"); 
        $r.sort(function(a, b) { 
            return (a.value < b.value) ? -1 : (a.value > b.value) ? 1 : 0;
        // if you do not have value attribute for option use the text value. Replace the above line of code with the one below.
        //return (a.value < b.value) ? -1 : (a.value > b.value) ? 1 : 0;
        }); 
        $($r).remove(); 
        $(listname).append($($r)); 
    } 

然后调用函数:

SortList('#Id_Of_Listbox');

这是 jsfiddle 示例:http: //jsfiddle.net/Kz2bg/2/

于 2013-07-16T16:14:10.343 回答