Jquery 自动选择下拉菜单依赖于另一个下拉菜单,反之亦然,有数百个条目

Jquery 自动选择下拉菜单依赖于另一个下拉菜单,反之亦然,有数百个条目,jquery,html-select,Jquery,Html Select,我是一个新手程序员,这是我关于stackoverflow的第一个问题,如果这个问题听起来对你的水平来说有点太基本,请道歉 请参阅我的JSFIDLE: 您可以看到,我基于另一个下拉列表“学者ID”创建了一个自动选择“学者”下拉列表。例如:,将ID更改为A003会将名称下拉列表更改为Tracy B.Serrano。反之亦然,也就是说,更改“名称”下拉列表也会更改他/她的分配ID。例如,将名称更改为Derrick B。Bailey将其ID更改为A001 这是完美的。但正如您所看到的,这个示例仅使用3个

我是一个新手程序员,这是我关于stackoverflow的第一个问题,如果这个问题听起来对你的水平来说有点太基本,请道歉

请参阅我的JSFIDLE:

您可以看到,我基于另一个下拉列表“学者ID”创建了一个自动选择“学者”下拉列表。例如:,将ID更改为A003会将名称下拉列表更改为Tracy B.Serrano。反之亦然,也就是说,更改“名称”下拉列表也会更改他/她的分配ID。例如,将名称更改为Derrick B。Bailey将其ID更改为A001

这是完美的。但正如您所看到的,这个示例仅使用3个名称/id

就我个人而言,如果我必须为10个或20个姓名/ID写下拉列表,我是可以的,但是现在有数百个ID和姓名的组合。我认为反复写几百次“如果其他”组合是不可行的。我认为应该有更好的方法来编写,比如说,使用数组之类的。但我个人找不到这样做的方法,也找不到这样做的方法


如果有人能为数百个条目编写简化代码,我将不胜感激。或者,如果在本论坛或任何论坛中已经有类似的答案,您也可以指出。

您的应用程序逻辑在我看来很奇怪。如果是一对一映射,为什么不让用户选择一个名称呢?无论如何,有很多方法可以将其存档,但首先,您必须计划如何存储100或1000条记录。由于我现在看到的是一对一,更简单的方法是使用选定的索引,如下所示:

$(“#s1”).change(函数(){
$(“#s2选项”).eq($(this).prop(“selectedIndex”)).prop(“selected”、“selected”);
});
$(“#s2”)。更改(函数(){
$(“#s1选项”).eq($(this).prop(“selectedIndex”)).prop(“selected”、“selected”);
});

A001
A002
A003
约翰
加尔文
做记号

我觉得你的应用程序逻辑很奇怪。如果是一对一映射,为什么不让用户选择一个名称呢?无论如何,有很多方法可以将其存档,但首先,您必须计划如何存储100或1000条记录。由于我现在看到的是一对一,更简单的方法是使用选定的索引,如下所示:

$(“#s1”).change(函数(){
$(“#s2选项”).eq($(this).prop(“selectedIndex”)).prop(“selected”、“selected”);
});
$(“#s2”)。更改(函数(){
$(“#s1选项”).eq($(this).prop(“selectedIndex”)).prop(“selected”、“selected”);
});

A001
A002
A003
约翰
加尔文
做记号

谢谢庄先生,这正是我需要的!事实上,我也喜欢你的第二个建议(使用数据映射),这意味着我不需要按字母顺序排列名称/ID。关于你的问题,是的,这是真的,我只能使用一个选项,将ID和名称组合在选项列表中,即“A001-Derrick B.Bailey”但我之所以把它分成两种选择,更多的是出于我个人的审美。此外,有些用户记得某人的ID,但不记得他/她的名字,反之亦然。通过拆分,用户可以直接使用相应的选择选项(通过ID或名称)。再次感谢!谢谢庄先生,这正是我需要的!事实上,我也喜欢你的第二个建议(使用数据映射),这意味着我不需要按字母顺序排列名称/ID。关于你的问题,是的,这是真的,我只能使用一个选项,将ID和名称组合在选项列表中,即“A001-Derrick B.Bailey”但我之所以把它分成两种选择,更多的是出于我个人的审美。此外,有些用户记得某人的ID,但不记得他/她的名字,反之亦然。通过拆分,用户可以直接使用相应的选择选项(通过ID或名称)。再次感谢!
$('select[id=scholarid]').change(function(event) {
    var scholarids = $(this).val();
    if (scholarids == 'A001')
        $('select[id=scholarname]').val('Derrick B. Bailey');
    else if (scholarids == 'A002')
        $('select[id=scholarname]').val('Amber J. Holt');
    else if (scholarids == 'A003')
        $('select[id=scholarname]').val('Tracy B. Serrano');
});

$('select[id=scholarname]').change(function(event) {
    var scholarnames = $(this).val();
    if (scholarnames == 'Derrick B. Bailey')
        $('select[id=scholarid]').val('A001');
    else if (scholarnames == 'Amber J. Holt')
        $('select[id=scholarid]').val('A002');
    else if (scholarnames == 'Tracy B. Serrano')
        $('select[id=scholarid]').val('A003');
});