javascript 下拉菜单返回一个值

javascript drop down menus returning a value

使用该网站已有一段时间了 - 第一次发帖。

我有一个问题想解决。在 Javascript(不是 jQuery 或 AJAX)中,我试图有 2 个下拉菜单,第三个字段 return 是基于两个下拉菜单的整数。所以我有下拉菜单 1,当用户从该菜单中选择一个值时,第二个下拉菜单将显示相关项目 - 我有 运行 使用我在这里找到的示例很好:Populate one dropdown based on selection in another

但是我现在需要能够根据第二个下拉菜单中的选择提取一个值。例如,用户在第一个菜单中选择 "Audi",然后在第二个菜单中选择 "A4",然后显示该特定项目的价格。

我对这个一无所知,一直在尝试使用第二个下拉菜单中的索引 - 一旦用户选择了第三个项目,索引应该 return "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;

然后我可以从中提取数值以用于计算。然而,我当时必须设置我的下拉菜单的方式是,数组样式不适用于第二个菜单,让我现在不知所措。

希望我已经解释清楚了。

您可以向这些元素添加一个额外的属性,例如 category-id="x",其中 x 是您希望从每个元素中提取的值。然后您可以使用选择器获取该值:

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

#submenu.checked 更改为任何 类 或您添加到子菜单和所选项目的选择器。

感谢您的回复,我很抱歉错过了 HTML 昨天的脑筋急转弯(自从我上次编码以来已经太久了!)。

最后我设法通过在最终计算中创建一个 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;

switch 语句现在正在快速增长,因此只发布了一个片段。这可能不是最优雅的解决方案,但我发现它工作得很好,所以现在我可以继续研究下一个问题,哈哈。

再次感谢大家