我需要基于对CITY
的选择和select2来填充PROVINCE
。
我遇到了一些问题:
1- PROVINCE
:默认情况下已填充,但是我得到重复的元素。在我的示例中,我得到:
Milan
Milan
Torin
Torin
但是我想得到:
Milan
Torin
由@david解决:http://jsfiddle.net/pe1u6Luo/282/
2-基于PROVINCE
选择,我只需要用子数组填充CITY
。例如,如果我在第一次选择时选择了Milan
,则需要得到CITY
,例如:
Rho
Other city
我不知道该怎么过滤。
由@david解决:http://jsfiddle.net/pe1u6Luo/282/
3- select2的字段框过滤器不起作用。如果我插入“ MI”,都灵仍然显示
4-基于@david解决方案http://jsfiddle.net/pe1u6Luo/282/,我必须按字母顺序返回PROVINCE数组。在我的示例中,已经完成,因为我只插入了2个项目,并且已经订购了。.
这是我最初的小提琴:
答案 0 :(得分:2)
在您的processResults上添加if
语句。
检查省内的processResults
。
processResults: function (data) {
var a = [];
return {
results: $.map(data, function(obj) {
if (!a.includes(obj.provincia.nome)) {
a.push(obj.provincia.nome);
return { id: obj.provincia.codice, text: obj.provincia.nome };
}
})
};
}
这是城市选择中的processResults
。
processResults: function (data) {
return {
results: $.map(data, function(obj) {
if ($('#province').val() == obj.provincia.codice){
return { id: obj.nome, text: obj.nome };
}
})
};
}
在省选择中,声明一个用于存储省名称的数组。如果阵列中已经有省名,请不要显示重复的名称。
在城市选择中,只需将省代码与选定的省代码一起检查即可。
答案 1 :(得分:0)
这是与您正在阅读的对象有关的问题。 被解析的对象在两个位置具有provincia.name ='Milan',在两个位置具有'Torin'。
select2功能运行正常,问题在于对象被“读取”。