【问题标题】:Javascript switch statements display data from 2 drop down menusJavascript switch 语句显示来自 2 个下拉菜单的数据
【发布时间】:2014-04-19 16:59:21
【问题描述】:

您好,有什么方法可以在我从两个下拉菜单选项中选择的两个选项之间显示数据?

<select id="mark">
<option value="blue">blue</option>
<option value="red">red</option>
 <option value="green">green</option>
 </select>

<select id="style">
 <option value="circle">circle</option>
 <option value="triangle">triangle</option>
 <option value="square">square</option>
 </select>

例如,如果从一个盒子中选择蓝色,从另一个盒子中选择三角形,是否有任何可能的方法来获得这个?这是我的尝试。但这似乎不起作用。有什么建议吗?谢谢

    switch(document.getElementById('mark').value,('style').value)
   {
    case 'blue':case'circle':
        {
             do something here
        }
        break;
    case 'red':case'triangle':
                   {
                    do something here
                   }

        break;

 }

【问题讨论】:

  • 你必须定义2个开关来实现它!

标签: javascript switch-statement options


【解决方案1】:

你可以试试这个:

document.getElementById("clickMe").onclick = function(){
    switch(document.getElementById('mark').value + '-' + document.getElementById('style').value) {
        case 'blue-circle':
                console.log('blue circle');
        break;
    }

}

http://jsfiddle.net/J3BK3/

也就是说,如果您真的想同时打开两者。我要做的是首先切换形状,创建它,然后用另一个开关着色。

【讨论】:

    【解决方案2】:

    根据 Werner 的回答,如果需要,您可以使用字符串连接通过一个 switch 来实现它。

    var mark = document.getElementById('mark').value;
    var style = document.getElementById('style').value;
    switch(mark + ' ' + style)
    {
        case 'blue circle':
            functionOne();
            break;
        case 'blue triangle':
            functionTwo();
            break;
        case 'red circle':
            functionThree();
            break;
        case 'red triangle':
            functionFour();
            break;
    }
    

    【讨论】:

      【解决方案3】:

      不幸的是,你不能,你总是必须使用嵌套开关。

      【讨论】:

        【解决方案4】:

        你需要像这样嵌套的 switch-case:

        var mark = document.getElementById('mark').value;
        var style = document.getElementById('style').value;
        switch(mark)
        {
            case 'blue':
                switch (style) {
                    case 'circle':
                        functionOne();
                        break;
                    case 'triangle':
                        functionTwo();
                        break;
                }
                break;
        
            case 'red':
                switch (style) {
                    case 'circle':
                        functionThree();
                        break;
                    case 'triangle':
                        functionFour();
                        break;
                }
                break;
        }
        

        但我更喜欢别的东西。我不能说到底是什么,因为我不知道你想做什么。反正。我希望这会有所帮助。

        【讨论】:

        • 基本上我想在地图上显示用户选择的标记。所以让我们说,如果他选择了一个方形的红色标记,那么一个红色的方形标记就会被丢弃。谢谢你的建议。
        猜你喜欢
        • 2012-04-24
        • 1970-01-01
        • 2017-10-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多