基于其他输入字段从json中选择2

问题描述 投票:0回答:2

我需要根据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个项目,已经订购..

这是我原来的小提琴:

http://jsfiddle.net/pe1u6Luo/218/

javascript jquery jquery-select2
2个回答
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 };
            }
        })
    };
}

在省选择中,声明一个用于存储省名的数组。如果省名已经在数组中,请不要显示副本。

在城市选择中,只需使用所选省份代码检查省代码。


0
投票

它与您正在阅读的对象有关。正在解析的对象在两个地方有provincia.name ='Milan',在两个地方有'Torin'。

select2功能正常工作,问题是对象被“读取”。

© www.soinside.com 2019 - 2024. All rights reserved.