2011-04-07 52 views
1

我有以下的HTML值:確定其在HTML選擇控制選擇使用jQuery

<select id="MySelector" multiple="multiple"> 
    <option value="2">Option A</option> 
    <option value="7">Option B</option> 
    <option value="9">Option C</option> 
    <option value="12">Option D</option> 
</select> 

<div id="CheckSelected">click here to select</div> 

我期待通過選擇的選項循環,並確定哪些已選定。

我希望做這樣的事情:

ArrayOfSelected = []; 

$('#CheckSelected').click(function { 

"if option is selected then add value to the array" 

}); 

感謝您的建議。

+0

這是您正在創建的新數組還是您有現有數組要添加值? – R0MANARMY 2011-04-07 19:30:00

回答

6

$('#MySelector').val()給你包含所選元素的值的數組。

+0

哇,非常酷,每天學習新的東西。 – R0MANARMY 2011-04-07 19:29:13

+0

+1,我發誓每天都會在SO上學到新的東西。 – 2011-04-07 19:30:08

+0

+1簡單 – sadmicrowave 2011-04-07 19:30:41

2

這樣的事情應該適合你。找到option:selected,併爲每個人將值推入數組中。

$('#CheckSelected').click(function() { 
    ArrayOfSelected.length = 0; //empty the array. 
    $("#MySelector option:selected").each(function() { 
     ArrayOfSelected.push($(this).val()); 
    }); 
}); 

Code example on jsfiddle.

+0

ooooo我太親密....延遲太久了:-P – Neal 2011-04-07 19:21:38

+0

哈哈,你不得不把它撥弄:-P – Neal 2011-04-07 19:28:25

1

嘗試:

ArrayOfSelected = []; 

$('#CheckSelected').click(function { 

    $('#MySelector option:selected').each(function(){ 
     ArrayOfSelected.push($(this).val()); 
    }) 

}); 
-2

你可以不用使用jQuery循環:

$('#CheckSelected').click(function() { 
    if($('#MySelector').val() == 'your_option') { 
     //add to array code 
    } 
} 
+1

這段代碼是沒用的......這個if語句在哪裏去? – Neal 2011-04-07 19:25:48

+0

如果這個if語句在循環之外,那麼啓動if是如何執行的?你沒有發佈足夠的代碼來幫助他... – sadmicrowave 2011-04-07 19:27:49

+0

我的不好,你們都是對的。你不要喝酒和編碼。我會盡力記住明天:D – MeLight 2011-04-07 19:28:56

1

您可以現場選擇選項框做到這一點點擊,而不是選擇一個選項,然後單擊「單擊此處,選擇」分區。執行以下操作:

var ArrayOfSelected = []; 
    $('select#MySelector').change(function(){ 
     ArrayOfSelected.length = 0; 
     ArrayOfSelected.push($(this).val()); 
     $("#picks").empty().append("<h1>selected: " + ArrayOfSelected + "</h1>"); 
}); 

.change()函數告訴回調函數在指定的選擇輸入中的選項已更改時執行。因此,對於每個選項框單擊,回調將執行...

這樣做會減少用戶爲了向陣列添加選項而必須執行的點擊次數。

更新

我在你的jsfiddle鏈接測試這和它的作品你想要的方式。