如果从选择框中选择了一个或多个项目,如何创建条件参数?

时间:2013-08-31 03:21:59

标签: javascript jquery if-statement

如果我有以下选择框:

<select id="a1" multiple>
<option>Apple</option>
<option>Banana</option>
<option>Carrot</option>
<option>Dates</option>
<option>Eggs</option>
<option>French fries</option>
</select>

编写条件if / else语句的正确方法是什么,只有在选择某些项目时才执行某些功能?

含义: 如果选择了Apple或Banana,则会遇到if条件#1且代码触发 但如果选择了胡萝卜或日期或鸡蛋,则会遇到if条件#2,并且会触发不同的代码等。

编辑:我想我使用此数组中的项目作为示例,但最有用的构造会将条件与所选索引(或索引)挂钩,而不仅仅是字符串值。这样,任何选择框都可以使用条件参数,而不管其中的值。

2 个答案:

答案 0 :(得分:1)

一种方法是使用相关指数的地图来调用相关函数,例如:

function functionOne() {
    console.log('functionOne called');
}

function functionTwo() {
    console.log('functionTwo called');
}

var functionMap = {
    '0-1-2': function(){
        functionOne();
    },
    '4-5': function(){
        functionTwo();
    }
};

$('select').change(function () {
    var valueString = $(this).find('option:selected').map(function () {
        return $(this).index();
    }).get().join('-');
    if (functionMap.hasOwnProperty(valueString)) {
        functionMap[valueString]();
    }
});

JS Fiddle demo

参考文献:

答案 1 :(得分:0)

如何取消这个?

http://jsfiddle.net/gZSBa/

$('#a1').change(function(){
    if($('#a1').val() == 'Carrot' ||  $('#a1').val() == 'Bannana'){
        alert('condition #1');
    }
});