【问题标题】:Display text based on info selected in two drop downs [closed]根据在两个下拉菜单中选择的信息显示文本[关闭]
【发布时间】:2016-09-22 15:56:50
【问题描述】:

我需要编写一小段代码,让位于我们文章页面顶部的用户能够执行以下操作:

Drop down 1: How old are you?

Drop down 2: What's your favourite fruit?

根据上面的输入,在做出第二次选择后,摘要文本会立即显示在下面,基于上面的两个选择,例如

对于喜欢苹果的 18-24 岁人群:苹果可以帮助您在您的年龄建立免疫系统!

对于喜欢香蕉的 50-60 岁人群:香蕉确实有助于晚年的维生素 C 和骨密度。

【问题讨论】:

  • 反之亦然选项怎么样?比如18-24岁选香蕉,50-60岁选苹果?还有什么是你多大的选项..添加一些代码伙伴..
  • 添加代码...你试过了
  • 我还没有任何代码,伙计们。我在 SO 或网络上找到的所有内容都引用了复制文本输出中的输入,然后仅单独引用。在 50 和香蕉的例子中,输出只是:你是 并且喜欢 。我试图提供基于两者组合的结果。 So: 你几岁: 16-60, 61+ 这是你第一次申请吗: 是/否 如果 25-40: 你可以在线注册并从银行取款 如果 16-24 或 41+: 你可以只能亲自申请 如果 16-60+ 第一次申请免费 如果 60+ 永远免费 如果任何其他年龄:您需要支付 50 美元

标签: jquery html forms conditional dropdownbox


【解决方案1】:

这完全取决于您的数据的结构。

假设会有相当多的年龄和成果,像这样的某种数据结构会起作用:

  var text = [
  { fruit: "bananas", ages: 
    [
      { range: "18-24", text:"Bananas are awesome"},
      { range: "50-60", text:"Bananas really help with vitamin C and bone density in later life."}
    ]
  },
  { fruit: "apples", ages: 
    [
      {range: "18-24", text:"Apples help you build your immune system at your age!"},
      {range: "50-60", text:"Apples are cheap."}
    ]
   }
]

然后可以使用选择列表的选定值在数据中搜索正确的文本:

function findText(fruit,age)
{
    for(var i =0; i < text.length; i++)
  {
    if(text[i].friut == fruit)
    {
        for(var j=0; j < text[i].ages.length; j++)
      {
        if(text[i].ages[j].range == age)
            return (text[i].ages[j].text;
      }
    }
  }
  return "No match";
}

那么你如何绑定更改事件只需调用 find 函数:

document.getElementById("age").onchange = function()
{
  var age= document.getElementById("age").value();
  var fruit = document.getElementById("fruit").value();

  var displayText = fruitText(friut,text);
}

【讨论】:

  • 这看起来正是我想要的,并且非常有意义。非常感谢您抽出宝贵时间 - 我会尽快试一试 :)
猜你喜欢
  • 2021-01-28
  • 2017-05-18
  • 2022-12-06
  • 1970-01-01
  • 2015-03-08
  • 1970-01-01
  • 1970-01-01
  • 2017-10-06
  • 1970-01-01
相关资源
最近更新 更多