2014-01-29 78 views
0

所以我得到了一個id爲mySelect的選擇器。如果選擇了選項,則更改變量

<select name="mySelect" id="mySelect"> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option>  
</select> 

如果選擇了其中一個選項,我想將jquery中的變量顏色設置爲一個值。然後使用這個顏色變量。

var color; 
    $('#mySelect option:selected').change(function(){ 

    if($(this).val() == '1') { 
    color = #000080;  
    return color; 
    } 
    if($(this).val() == '2') { 
    color = #ff0000;  
    return color; 
    } 
}); 

jQuery代碼是不正確的,我似乎無法修復它..

+0

你所說的這些選項的一個意思。默認情況下,下拉菜單選擇第一個選項。 –

+0

好吧,我想擴展它,當選項2被選擇另一種顏色分配。 – Nijn

回答

2

變更事件應該是select元素上,而不是在option:selected,試試這個:

var color; 
$('#mySelect').change(function(){ 

    if($(this).val() == '1') { 
     color = "#000080";//<- Needs to be a string 
     return color; 
    } 
}); 

夫婦的注意事項:

  1. 我已經改變了使用正確的ID選擇器(#mySelect),但我認爲這是您的錯字?
  2. 你實際上並不需要使用option:selectedvalue,但你需要這是你想要訪問所選option DOM元素(例如,以獲得text
  3. 我固定的顏色字符串(見上述評論)
  4. 不知道爲什麼你使用的是return說法,你應該只刪除此

Here is a working example

先進的解決方案

我會建議,而不是使用一組,如果您使用數組/ else語句來存儲你的顏色列表中,那麼你可以使用val()作爲指數(不要忘記減去1,因爲它基於零)。就像這樣:

var colors = ["#000080", "#008000", "#800000"]; 

var color; 
$('#mySelect').change(function() { 
    color = colors[$(this).val() - 1]; 
    return color; 
}); 

Here is an example

+1

太棒了!非常感謝您提供的解決方案和信息。很好的幫助。 – Nijn

0
$('#categorie option:selected') // This is for selected option which won't work 
           // change event handler 

改回選擇標籤

$('#mySelect').change(.. //also change your id 
0

試試這個

var color; 
$('#mySelect').change(function(){ 

    switch($(this).val()) { 
    case "1": color = "#000080";break; 
    case "2": color = "#FF0080";break; 
    case "3": color = "#EE0080";break; 
    } 
    alert(color); 
}); 

http://jsfiddle.net/Pesulap/cMLmU/1/

0

你需要這樣的:

$(function() { $('#mySelect').on('change',function(){ if($(this).val()==1) { /*do stuff here*/ } }); });

現場演示:http://jsfiddle.net/PwMxk/1/

相關問題