2015-09-07 171 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; 

开关声明现在正在迅速增长,因此只发布一个片段。这可能不是最优雅的解决方案,但我发现它工作得很好,所以现在我可以继续下一个问题哈哈。

再次感谢大家