2013-08-31 32 views
0

如果我有以下选择框:如何从选择框中选择一个或多个项目时创建条件参数?

<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声明,使得某些功能仅执行了正确的方法是什么?

含义: 如果苹果或香蕉选择,则if条件#1被满足,代码火灾
但如果胡萝卜或日期或鸡蛋选择,则if条件#2被满足和不同的代码火灾

编辑:我想我用这个数组中的项作为例子,但最可用的构造会将条件固定到选定的索引(或索引),而不一定只是对于字符串值。这样,任何选择框都可以使用条件参数,而不管其中的值如何。

+0

的选项添加事件侦听和检查的文本,或添加像'数据-NAME =“香蕉”'其他HTML价值? – Soundz

+0

你想要的条件或代码访问值的逻辑? –

+0

你可以添加一个更改事件处理程序到select事件,然后在那里添加'if'条件 –

回答

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

参考文献:

0

这是怎么得到的?

http://jsfiddle.net/gZSBa/

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