我想要有一個窗體與兩個下拉選擇從數組填充選擇選項。第一個選擇只有一個數組,但是取決於選擇,我想用特定的多維數組填充第二個數組。我可以單獨執行它們,但我無法將數組名從第一個選擇傳遞給函數以填充第二個選項。jquery動態依賴從多維數組中選擇
我很新的JavaScript和jQuery 1.11.0,並希望有任何幫助。
這是我正在使用的代碼。
select name="aircraftList" id="aircraftList" onchange="showAircraft(this.selectedIndex)"
select name="configWBList" id="configWBList"
// values for AIRCRAFT
// tnumber, acmodel, maxwt, f1arm, m1arm, r1arm, littarm, bag1max, fuel1kgmax,
///////////////////////////////////////////////////////////
var aircraft = [
["Select Aircraft", "", "", "", "", "", "", "", "", ""],
['N901AH', "Agusta A109E", 3000, 1585, 2455, 3200, 5300, 3200, 150, 480],
['N902AH', "Agusta A109E", 3000, 1585, 2455, 3200, 5300, 3200, 150, 480],
['N903AH', "Agusta A109E", 3000, 1585, 2455, 3200, 5300, 3200, 150, 480],
['N904AH', "Agusta A109E", 3000, 1585, 2455, 3200, 5300, 3200, 150, 480],
['N905AH', "Agusta A109E", 3000, 1585, 2455, 3200, 5300, 3200, 150, 480],
['N907AH', "Agusta A109E", 3000, 1585, 2455, 3200, 5300, 3200, 150, 480]
];
// values for AC N901AH
///////////////////////////////////////////////////////////
var N901AH = [
["Select a Configuration", "Select Config", "Select Config"],
["6 PAX STANDARD SEATS OFFSHORE", 2205.61, 3485.69],
["DUAL CONTROLS INSTALLED", 2207.81, 3483.76],
["VIP SEATS INSTALLED", 2212.11, 3483.75],
["VIP SEATS, DUAL CONTROLS INSTALLED", 2214.31, 3481.83],
["ONE LITTER KIT INSTALLED", 2213.91, 3483.50],
["ONE LITTER, DUAL CONTROLS INSTALLED", 2216.11, 3481.58],
["6 PAX STANDARD SEATS, VESTS REMOVED", 2196.81, 3489.83],
["VIP SEATS INSTALLED, VEST REMOVED", 2203.31, 3487.87],
["ONE LITTER INSTALLED, VESTS REMOVED", 2207.31, 3487.02],
["TWO LITTER INSTALLED", 2222.21, 3481.32],
["TWO LITTER, DUAL CONTROLS INSTALLED", 2224.41, 3479.41],
["VIP SEATS, DUAL CONTROLS INSTALLED, VESTS REMOVED", 2205.51, 3485.93],
["ONE LITTER, DUAL CONTROLS INSTALLED, VESTS REMOVED", 2209.51, 3485.09],
["TWO LITTER, DUAL CONTROLS INSTALLED, VESTS REMOVED", 2220.01, 3482.33],
["FLOATS, RAFT, VESTS REMOVED", 2084.51, 3507.26]
];
// values for AC N902AH
///////////////////////////////////////////////////////////
var N902AH = [
["Select a Configuration", "Select Config", "Select Config"],
["6 PAX STANDARD SEATS OFFSHORE", 2205.61, 3485.69],
["DUAL CONTROLS INSTALLED", 2207.81, 3483.76],
["VIP SEATS INSTALLED", 2212.11, 3483.75],
["VIP SEATS, DUAL CONTROLS INSTALLED", 2214.31, 3481.83],
["ONE LITTER KIT INSTALLED", 2213.91, 3483.50],
["ONE LITTER, DUAL CONTROLS INSTALLED", 2216.11, 3481.58],
["6 PAX STANDARD SEATS, VESTS REMOVED", 2196.81, 3489.83],
["VIP SEATS INSTALLED, VEST REMOVED", 2203.31, 3487.87],
["ONE LITTER INSTALLED, VESTS REMOVED", 2207.31, 3487.02],
["TWO LITTER INSTALLED", 2222.21, 3481.32],
["TWO LITTER, DUAL CONTROLS INSTALLED", 2224.41, 3479.41],
["VIP SEATS, DUAL CONTROLS INSTALLED, VESTS REMOVED", 2205.51, 3485.93],
["ONE LITTER, DUAL CONTROLS INSTALLED, VESTS REMOVED", 2209.51, 3485.09],
["TWO LITTER, DUAL CONTROLS INSTALLED, VESTS REMOVED", 2220.01, 3482.33],
["FLOATS, RAFT, VESTS REMOVED", 2084.51, 3507.26]
];
// values for AC N903AH
///////////////////////////////////////////////////////////
var N903AH = [
["Select a Configuration", "Select Config", "Select Config"],
["6 PAX STANDARD SEATS OFFSHORE", 2205.61, 3485.69],
["DUAL CONTROLS INSTALLED", 2207.81, 3483.76],
["VIP SEATS INSTALLED", 2212.11, 3483.75],
["VIP SEATS, DUAL CONTROLS INSTALLED", 2214.31, 3481.83],
["ONE LITTER KIT INSTALLED", 2213.91, 3483.50],
["ONE LITTER, DUAL CONTROLS INSTALLED", 2216.11, 3481.58],
["6 PAX STANDARD SEATS, VESTS REMOVED", 2196.81, 3489.83],
["VIP SEATS INSTALLED, VEST REMOVED", 2203.31, 3487.87],
["ONE LITTER INSTALLED, VESTS REMOVED", 2207.31, 3487.02],
["TWO LITTER INSTALLED", 2222.21, 3481.32],
["TWO LITTER, DUAL CONTROLS INSTALLED", 2224.41, 3479.41],
["VIP SEATS, DUAL CONTROLS INSTALLED, VESTS REMOVED", 2205.51, 3485.93],
["ONE LITTER, DUAL CONTROLS INSTALLED, VESTS REMOVED", 2209.51, 3485.09],
["TWO LITTER, DUAL CONTROLS INSTALLED, VESTS REMOVED", 2220.01, 3482.33],
["FLOATS, RAFT, VESTS REMOVED", 2084.51, 3507.26]
];
// values for AC N904AH
///////////////////////////////////////////////////////////
var N904AH = [
["Select a Configuration", "Select Config", "Select Config"],
["6 PAX STANDARD SEATS OFFSHORE", 2205.61, 3485.69],
["DUAL CONTROLS INSTALLED", 2207.81, 3483.76],
["VIP SEATS INSTALLED", 2212.11, 3483.75],
["VIP SEATS, DUAL CONTROLS INSTALLED", 2214.31, 3481.83],
["ONE LITTER KIT INSTALLED", 2213.91, 3483.50],
["ONE LITTER, DUAL CONTROLS INSTALLED", 2216.11, 3481.58],
["6 PAX STANDARD SEATS, VESTS REMOVED", 2196.81, 3489.83],
["VIP SEATS INSTALLED, VEST REMOVED", 2203.31, 3487.87],
["ONE LITTER INSTALLED, VESTS REMOVED", 2207.31, 3487.02],
["TWO LITTER INSTALLED", 2222.21, 3481.32],
["TWO LITTER, DUAL CONTROLS INSTALLED", 2224.41, 3479.41],
["VIP SEATS, DUAL CONTROLS INSTALLED, VESTS REMOVED", 2205.51, 3485.93],
["ONE LITTER, DUAL CONTROLS INSTALLED, VESTS REMOVED", 2209.51, 3485.09],
["TWO LITTER, DUAL CONTROLS INSTALLED, VESTS REMOVED", 2220.01, 3482.33],
["FLOATS, RAFT, VESTS REMOVED", 2084.51, 3507.26]
];
// values for AC N905AH
///////////////////////////////////////////////////////////
var N905AH = [
["Select a Configuration", "Select Config", "Select Config"],
["6 PAX STANDARD SEATS OFFSHORE", 2205.61, 3485.69],
["DUAL CONTROLS INSTALLED", 2207.81, 3483.76],
["VIP SEATS INSTALLED", 2212.11, 3483.75],
["VIP SEATS, DUAL CONTROLS INSTALLED", 2214.31, 3481.83],
["ONE LITTER KIT INSTALLED", 2213.91, 3483.50],
["ONE LITTER, DUAL CONTROLS INSTALLED", 2216.11, 3481.58],
["6 PAX STANDARD SEATS, VESTS REMOVED", 2196.81, 3489.83],
["VIP SEATS INSTALLED, VEST REMOVED", 2203.31, 3487.87],
["ONE LITTER INSTALLED, VESTS REMOVED", 2207.31, 3487.02],
["TWO LITTER INSTALLED", 2222.21, 3481.32],
["TWO LITTER, DUAL CONTROLS INSTALLED", 2224.41, 3479.41],
["VIP SEATS, DUAL CONTROLS INSTALLED, VESTS REMOVED", 2205.51, 3485.93],
["ONE LITTER, DUAL CONTROLS INSTALLED, VESTS REMOVED", 2209.51, 3485.09],
["TWO LITTER, DUAL CONTROLS INSTALLED, VESTS REMOVED", 2220.01, 3482.33],
["FLOATS, RAFT, VESTS REMOVED", 2084.51, 3507.26]
];
// values for AC N907AH
///////////////////////////////////////////////////////////
var N907AH = [
["Select a Configuration", "Select Config", "Select Config"],
["6 PAX STANDARD SEATS OFFSHORE", 2205.61, 3485.69],
["DUAL CONTROLS INSTALLED", 2207.81, 3483.76],
["VIP SEATS INSTALLED", 2212.11, 3483.75],
["VIP SEATS, DUAL CONTROLS INSTALLED", 2214.31, 3481.83],
["ONE LITTER KIT INSTALLED", 2213.91, 3483.50],
["ONE LITTER, DUAL CONTROLS INSTALLED", 2216.11, 3481.58],
["6 PAX STANDARD SEATS, VESTS REMOVED", 2196.81, 3489.83],
["VIP SEATS INSTALLED, VEST REMOVED", 2203.31, 3487.87],
["ONE LITTER INSTALLED, VESTS REMOVED", 2207.31, 3487.02],
["TWO LITTER INSTALLED", 2222.21, 3481.32],
["TWO LITTER, DUAL CONTROLS INSTALLED", 2224.41, 3479.41],
["VIP SEATS, DUAL CONTROLS INSTALLED, VESTS REMOVED", 2205.51, 3485.93],
["ONE LITTER, DUAL CONTROLS INSTALLED, VESTS REMOVED", 2209.51, 3485.09],
["TWO LITTER, DUAL CONTROLS INSTALLED, VESTS REMOVED", 2220.01, 3482.33],
["FLOATS, RAFT, VESTS REMOVED", 2084.51, 3507.26]
];
// set form values to selected aircraft option
///////////////////////////////////////////////////////////
function showAircraft(idx) {
var aircraftWB = [aircraft[idx][0]]
alert(aircraftWB);
$("#configWBList").html('');
list(aircraftWB);
}
function list(arrary) {
alert(arrary);
// populate selected aircraft w&b select
///////////////////////////////////////////////////////////
for (i = 0; i < arrary.length; i++) {
var select = document.getElementById("configWBList");
select.options[select.options.length] = new Option(arrary[i][0], arrary[i][1]);
}
// reset the selected aircraft configuration to standard
///////////////////////////////////////////////////////////
$("#configWBList").val($("#configWBList option:first").val());
$("#configWBList").selectmenu('refresh', true);
}
// initialise form
// ****************************************************
function initForm() {
// populate aircraft select
///////////////////////////////////////////////////////////
for (i = 0; i < aircraft.length; i++) {
var select = document.getElementById("aircraftList");
select.options[select.options.length] = new Option(aircraft[i][0], aircraft[i][1]);
}
}
initForm();
https://jsfiddle.net/g3h9p2ur/
你是否堅持使用這種形式的信息,或者你自己在編寫這些數組?如果您可以修改它們,則關聯數組可能是更好的選擇。 – ntrrobng 2015-04-01 04:33:09
不,我自己寫這些數組。正如我所說我對jQuery(我的第一個項目)非常陌生,我無法讓聯合數組工作。 – geno 2015-04-01 17:06:46