Javascript 根据其他输入字段从json中选择2

Javascript 根据其他输入字段从json中选择2,javascript,jquery,jquery-select2,Javascript,Jquery,Jquery Select2,我需要使用select2填充一个城市基于省上的选择 我有一些问题: 1-省:默认情况下会填充它,但我会得到重复的元素。在我的例子中,我得到: Milan Milan Torin Torin 但我想得到: Milan Torin 由@david解决: 2-基于省选择,我只需要用子数组填充市。例如,如果我在第一次选择时选择了millan,我需要得到CITY如下: Rho Other city 我不知道如何过滤 由@david解决: 3-select2的Fieldbox筛选器不工作。如果我插入“

我需要使用select2填充一个
城市
基于省上的选择

我有一些问题:

1-
:默认情况下会填充它,但我会得到重复的元素。在我的例子中,我得到:

Milan
Milan
Torin
Torin
但我想得到:

Milan
Torin
由@david解决:

2-基于
选择,我只需要用子数组填充
。例如,如果我在第一次选择时选择了
millan
,我需要得到
CITY
如下:

Rho
Other city
我不知道如何过滤

由@david解决:

3-select2的Fieldbox筛选器不工作。如果我插入“MI”,Torin仍会显示

4-基于@david solution,我必须按字母顺序返回省数组。在我的例子中,已经完成了,因为我只插入了2个项目,并且已经订购了

这是我原来的小提琴:


这是一个与您正在阅读的对象相关的问题。 正在分析的对象在两个位置有provincia.name='Milan',在两个位置有'Torin'


select2功能工作正常,问题在于对象正在“读取”

这是一个与您正在阅读的对象相关的问题。 正在分析的对象在两个位置有provincia.name='Milan',在两个位置有'Torin'


select2功能工作正常,问题在于对象正在“读取”

在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 };
            }
        })
    };
}
在省选择中,声明用于存储省名称的数组。如果省名称已在数组中,则不显示重复项


在城市选择中,只需将省代码与所选省代码一起检查。

添加
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 };
            }
        })
    };
}
在省选择中,声明用于存储省名称的数组。如果省名称已在数组中,则不显示重复项


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

这是我需要处理的原始json。我正在寻找一个返回UNIQUES值的方法……这是我需要处理的原始json。我正在寻找一种返回UNIQUES值的方法……您的json数据是否与javascript文件位于同一个文件中?不,它在服务器中保存为data.json。我在semplicity变量中发布了一个json,仅用于示例。您的json数据是否与javascript文件位于同一文件中?否,它在服务器中保存为data.json。我在semplicity变量中发布了一个json,仅用于示例。谢谢!它完美地解决了第1点和第2点。现在我要解决第3点,以及如何按字母顺序排列省数组。我想我会为此再开设一个职位。谢谢,不客气。如果你不介意的话,你可以把我的回答标为接受。这将帮助任何人谁可能遇到类似的问题与你。谢谢!它完美地解决了第1点和第2点。现在我要解决第3点,以及如何按字母顺序排列省数组。我想我会为此再开设一个职位。谢谢,不客气。如果你不介意的话,你可以把我的回答标为接受。它将帮助任何可能遇到类似问题的人。