2011-10-11 71 views
0

我正在使用jQuery來偵聽對<select multiple>元素的更改。根據我給出的事件,有什麼方法可以確定選擇中的哪些選項已更改(已選擇或取消選擇)?確定哪些元素在多重選擇上更改時發生更改

我知道我可以遍歷所有的select的孩子找出哪些選擇,但我特別需要知道哪些變化已經在事件的用武之地。

因此,舉例來說,如果select包含選項{ A, B, C },我需要能夠告訴用戶何時按住Ctrl鍵將B添加到所選內容,或者當用戶正常單擊以將所選內容從{ A, B }更改爲C時。

回答

1

那麼,AFAIK你不能以任何簡單的方式做到這一點。因爲用戶可以通過拖放或使用鍵盤等選擇多個選項。但是,只要觸發了事件,您就可以將SELECT的默認狀態存儲到選定選項/ ID的數組中,並在每次啓動變更時將其比較/更新。

+0

僅供參考,這就是我最後做,存儲陣列作爲選擇的屬性,而且運作良好。謝謝! – Zarkonnen

1

您可以通過訪問event.target(FF)和event.srcElement(IE)來獲取選定的選項。並且在任何給定的點,你可以找到什麼是使用jQuery所有選擇的選項 -

$('id of the element').find(':selected') 
+0

不幸的是,我認爲event.target實際上指向了select元素。 – Zarkonnen