2015-09-07 77 views
2

一直在使用該網站一段時間 - 第一次發佈。javascript下拉菜單返回值

我有一個問題,我正在努力解決。在Javascript中(不是jQuery或AJAX),我試着有兩個下拉菜單,第三個字段返回一個基於這兩個下拉菜單的整數。所以我有下拉菜單1,當用戶從該菜單中選擇一個值時,第二個下拉菜單將顯示相關的項目 - 我已經運行良好,使用我在這裏找到的示例:Populate one dropdown based on selection in another

但是,我現在需要能夠根據第二個下拉菜單中的選擇拉出一個值。例如,用戶在第一個菜單中選擇「Audi」,然後在第二個菜單中選擇「A4」,然後顯示該特定項目的價格。

im完全喪失了這個,一直試圖使用第二個下拉菜單的索引 - 一旦用戶選擇了第三項索引應該返回「4」,然後我可以設置另一個數組來切換那「4」到我想要的價值 - 但那似乎笨重。

在我爲我的菜單的初始測試中,我用這個數組:

stone_category = 0; 
stone_category["Granite & Marble"]=1; 
stone_category["Sensa Granite"]=2; 
stone_category["Silestone Quartz - Polished Finish"]=3; 
stone_category["Silestone Quartz - Leather & Volcano Finish"]=4; 
stone_category["Eco Recycled Surfaces - Polished Finish"]=5; 
stone_category["Caesarstone Quartz - Polished Finish"]=6; 
stone_category["Unistone Quartz - Polished & Leather Finish"]=7; 
stone_category["Samsung Radianz Quartz - Polished Finish"]=8; 
stone_category["Okite Quartz - Polished Finish"]=9; 
stone_category["Compac Quartz - Polished and Matt Finish"]=10; 

從這我可以拉的數值在計算中使用。然而,然後我不得不建立我的下拉菜單,該陣列的風格不適用於第二個菜單,讓我在現在的損失。

我希望我已經解釋清楚了。

+1

是的,你解釋清楚,但請添加您當前的HTML和JavaScript(如果可能,請設置小提琴)。我相信你會很快得到答案。 :) – sinisake

回答

0

您可以爲這些元素添加一個額外的屬性,如category-id="x",其中x是您希望從每個元素拉取的值。然後,你可以抓住該值與選擇:

value = document.querySelector("#submenu .checked").getAttribute("category-id");

變化#submenu.checked與您添加到子菜單,選擇項目的任何類或選擇。

0

感謝您的回覆,我很抱歉昨天錯過了HTML out - brain frazzle(自從我上次編碼以來太長了!)。

我最終設法通過在最終計算中創建一個switch語句來解決問題。此檢索來自第二菜單,所述用戶已經選擇的值,並切換它的所需值是這樣的:

var a = document.getElementById("ddl2"); 
var strUser = a.options[a.selectedIndex].value; 

//切換石的名稱爲價格

if (thicknessDesired == "20") { 
switch (strUser) { 
case 'Galaxy Grey': 
case 'Rosa Porrino': 
case 'Rosa Sardo': 
     var price = '99.75'; 
    break; 

開關聲明現在正在迅速增長,因此只發佈一個片段。這可能不是最優雅的解決方案,但我發現它工作得很好,所以現在我可以繼續下一個問題哈哈。

再次感謝大家