2013-08-31 29 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'); 
    } 
}); 
相關問題