首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用级联下拉菜单为varaible赋值

使用级联下拉菜单为varaible赋值
EN

Stack Overflow用户
提问于 2021-06-08 16:25:18
回答 1查看 28关注 0票数 0

我对此还是个新手,而且我已经没有办法让它工作了。

情况是这样的;对于计算器工具,我需要创建一个级联下拉菜单,其中所选的第二个选项与一个值相对应,然后该值应用作公式中的变量。我目前的问题是,我不知道如何为每个选项赋值。我想我可以弄明白其余的代码,但我已经被困在这一点上有一段时间了。

这是我到目前为止拥有的级联下拉菜单。我更改了选项,只是为了确保它与我正在工作的项目没有任何关系。为了清楚起见,让我们假设我需要将汽车的价值分配给相应的选项,然后用它来计算税收,这将是车辆价值的某个百分比,稍后。

代码语言:javascript
复制
<script>
    function dynamicdropdown(listindex)
    {
    document.getElementById("Model").length = 0;
    switch (listindex)
    {
    case "Mazda" :
        document.getElementById("model").options[0]=new Option("Select Model","");
        document.getElementById("model").options[1]=new Option("MX-5","MX-5");
        document.getElementById("model").options[2]=new Option("RX-7","RX-7");
        document.getElementById("model").options[3]=new Option("323","323");
        document.getElementById("model").options[4]=new Option("626","626");
        document.getElementById("model").options[5]=new Option("MX-6","MX-6");
        break;
    case "Subaru" :
        document.getElementById("model").options[0]=new Option("Please select model","");
        document.getElementById("model").options[1]=new Option("Impreza","Impreza");
        document.getElementById("model").options[2]=new Option("Forester","Forester");
        break;
    case "Nissan" :
        document.getElementById("model").options[0]=new Option("Please select model","");
        document.getElementById("model").options[1]=new Option("350Z","350Z");
        document.getElementById("model").options[2]=new Option("370Z","370Z");
        document.getElementById("model").options[3]=new Option("Pulsar","Pulsar");
        document.getElementById("model").options[4]=new Option("GT-R","GT-R");
        document.getElementById("model").options[5]=new Option("Skyline","Skyline");
      }
    return true;
    }
    </script>
<div class="category_div" id="category_div">Select manufacturer:
                <select name="category" class="required-entry" id="category" onchange="javascript: dynamicdropdown(this.options[this.selectedIndex].value);">
                <option value="">Select manufacturer</option>
                <option value="Mazda">Mazda</option>
                <option value="Subaru">Subaru</option>
                <option value="Nissan">Nissan</option>
<div class="category_div" id="category_div">Select manufacturer:
                <select name="category" class="required-entry" id="category" onchange="javascript: dynamicdropdown(this.options[this.selectedIndex].value);">
                <option value="">Select manufacturer</option>
                <option value="Mazda">Mazda</option>
                <option value="Subaru">Subaru</option>
                <option value="Nissan">Nissan</option>
               </select>
            </div>

如果我在更改代码时犯了任何错误,使其与项目无关,我深表歉意。正如我所说的,我是个新手,所以请善待我:)

EN

回答 1

Stack Overflow用户

发布于 2021-06-08 16:51:51

你可以通过在超文本标记语言中把this作为参数传递给你的函数(参见下面超文本标记语言中的onchange )。当我们在JavaScript代码中调用test函数时,将传递事件参数,该参数包含有关下拉菜单的所有信息。event.value包含您的选择,因此您可以使用它来确定要添加的值。

JavaScript:

代码语言:javascript
复制
const test = (event) => {
  let toAdd = 0
  if (event.value == "Nissan") toAdd = 10
  if (event.value == "Subaru") toAdd = 5
  console.log(5 + toAdd)
}

HTML:

代码语言:javascript
复制
<div class="category_div" id="category_div">
      Select manufacturer:
    <select name="category" class="required-entry" id="category" onchange="test(this)">
      <option value="">Select manufacturer</option>
      <option value="Mazda">Mazda</option>
      <option value="Subaru">Subaru</option>
      <option value="Nissan">Nissan</option>
  </select>
</div>

如果你想让你的代码更流畅,你可以在函数开始的时候改变value属性的结构,这样你就可以把花括号中的value写成参数,而不是event。然后,您可以继续引用value,而不是event.value...

代码语言:javascript
复制
const test = ({value}) => {

还有..。

代码语言:javascript
复制
if (value == "Nissan") toAdd = 10

Here's a pen with the code above

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67884038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档