Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 波兰字母排序选择2_Javascript_Jquery_Jquery Select2_Select2 - Fatal编程技术网

Javascript 波兰字母排序选择2

Javascript 波兰字母排序选择2,javascript,jquery,jquery-select2,select2,Javascript,Jquery,Jquery Select2,Select2,在@Rory McCrossan的帮助下,他成功地创建了这样一个脚本来对select字段中的值进行排序。但是,仍然存在一个问题-支持波兰语字符。有没有可能也被考虑在内 代码: var-dataUser=[{ “id”:“5”, “文本”:“B测试” }, { “id”:“2”, “文本”:“ATest” }, { “id”:“8”, “文本”:“aTest” }, { “id”:“13”, “文本”:“Ł测试” }]; var dataUser2=[{ “id”:“5”, “文本”:“DBTes

在@Rory McCrossan的帮助下,他成功地创建了这样一个脚本来对select字段中的值进行排序。但是,仍然存在一个问题-支持波兰语字符。有没有可能也被考虑在内

代码:

var-dataUser=[{
“id”:“5”,
“文本”:“B测试”
}, {
“id”:“2”,
“文本”:“ATest”
}, {
“id”:“8”,
“文本”:“aTest”
}, {
“id”:“13”,
“文本”:“Ł测试”
}];
var dataUser2=[{
“id”:“5”,
“文本”:“DBTest”
}, {
“id”:“2”,
“文本”:“测试”
}];
$(“#我的列表”)。选择2({
数据:dataUser,
templateResult:函数(数据){
返回data.text;
},
分拣机:功能(数据){
返回数据。排序(函数(a,b){
返回a.text.toLowerCase()b.text.toLowerCase()?1:0;
});
}
}).打开(“选择2:选择”,功能(e){
var$container=$(this.next().find('.select2-selection\uu-rendered');
$container.find('li.select2-selection\u-choice').sort(函数(a,b){
返回$(a).text()<$(b).text()?-1:$(a).text()>$(b).text()?-1:0;
}).prependTo($集装箱);
});
$(“#mylist2”)。选择2({
数据:dataUser2,
templateResult:函数(数据){
返回data.text;
},
分拣机:功能(数据){
返回数据。排序(函数(a,b){
返回a.text.toLowerCase()b.text.toLowerCase()?1:0;
});
}
});

尝试使用String.localeCompare而不是
换句话说,你想按“ATest,BTest,ŁTest,ATest”排序?你是对的,谢谢你的回答:)旧的,但我刚刚偶然发现了这个问题。对于波兰语(我猜是英语以外的任何其他语言),实际指定语言代码是很重要的,因为如果您不这样做,浏览器将为您做出决定,它可能会在浏览器之间给出不同的结果(在我的例子中,这是节点和浏览器之间的差异)。只需像这样指定第二个参数
a.localeCompare(b,'pl')
var dataUser = [{
    "id": "5",
    "text": "BTest"
}, {
    "id": "2",
    "text": "ATest"
}, {
    "id": "8",
    "text": "aTest"
}, {
    "id": "13",
    "text": "ŁTest"
}];

var dataUser2 = [{
    "id": "5",
    "text": "DBTest"
}, {
    "id": "2",
    "text": "FATest"
}];

$("#mylist").select2({
    data: dataUser,
    templateResult: function(data) {
        return data.text;
    },
    sorter: function(data) {
        return data.sort(function(a, b) {
            return a.text.toLowerCase() < b.text.toLowerCase() ? -1 : a.text.toLowerCase() > b.text.toLowerCase() ? 1 : 0;
        });
    }
}).on("select2:select", function(e) {
    var $container = $(this).next().find('.select2-selection__rendered');
    $container.find('li.select2-selection__choice').sort(function(a, b) {
        return $(a).text() < $(b).text() ? -1 : $(a).text() > $(b).text() ? 1 : 0;
    }).prependTo($container);
});

$("#mylist2").select2({
    data: dataUser2,
    templateResult: function(data) {
        return data.text;
    },
    sorter: function(data) {
        return data.sort(function(a, b) {
            return a.text.toLowerCase() < b.text.toLowerCase() ? -1 : a.text.toLowerCase() > b.text.toLowerCase() ? 1 : 0;
        });
    }
});
sort(function(a, b) {
    return $(a).text().localeCompare($(b).text());
});