我需要根据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的fieldbox过滤器不起作用。如果我插入“MI”,Torin仍会显示
4-基于@david解决方案http://jsfiddle.net/pe1u6Luo/282/,我将按字母顺序返回PROVINCE数组。在我的例子已经完成因为我只插入了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 };
}
})
};
}
在省选择中,声明一个用于存储省名的数组。如果省名已经在数组中,请不要显示副本。
在城市选择中,只需使用所选省份代码检查省代码。
它与您正在阅读的对象有关。正在解析的对象在两个地方有provincia.name ='Milan',在两个地方有'Torin'。
select2功能正常工作,问题是对象被“读取”。