我是一名新手程序員,這是我在stackoverflow上的第一個問題,非常抱歉,如果問題聽起來有點過於基本。自動選擇下拉菜單取決於另一個下拉菜單,反之亦然,有數百個條目
請參閱我的jsfiddle:https://jsfiddle.net/azzaeff/ug1eo5rp/
$('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');
});
你可以看到,我已經創建了一個自動選擇基於另一個下拉列表中,「學者ID」「學者」下拉菜單。例如:,將ID更改爲A003會將名稱下拉列表更改爲Tracy B. Serrano。反之亦然,也就是說,更改名稱下拉列表也會更改其分配的ID。例如,將名稱更改爲Derrick B. Bailey將其ID更改爲A001。
這工作完美無瑕。但正如你所看到的,這個例子只是使用3個名字/ ID。
就個人而言,如果我必須爲10個或20個名稱/ ID編寫下拉菜單,但現在有數百個ID和名稱的組合,那麼我確定。我認爲數百次重複編寫'if-else'組合是不可行的。我認爲應該有更好的方式來編寫,例如使用數組或其他。但我個人無法找到一種方法來做到這一點,或搜索它。
如果有人可以幫助編寫數百個條目的簡化代碼,我將非常感激。或者,如果在這個論壇或任何論壇中已經有類似的答案,您也可以指出。
感謝莊先生,這正是我需要的!事實上,我也喜歡你的第二個建議(使用數據映射),這意味着我不需要按字母順序排列名稱/ ID。 –
關於你的問題,是的,它的真實我可以只使用一個選擇與ID和名字相結合的選項列表即。 「A001 - Derrick B. Bailey」,但我把它分成兩個選項的原因更多的是我個人的審美。另外,有些用戶會記住某人的ID,但不記得他/她的名字,反之亦然。通過拆分它,用戶可以直接使用適當的選擇選項(無論是通過ID還是姓名)。再次感謝! –