我試圖創建多選列表並在選擇更改時執行一些操作。我有在ASP.NET MVC視圖下面的代碼(Model.AvailableChoices是一個IEnumerable):當多個選項被選中時,jQuery更改事件不會在IE8中觸發多個<select>
@Html.ListBoxFor(
m => m.Value,
Model.AvailableChoices.Select(s => new SelectListItem() {Text = s, Value = s,})
, new {@class = "StringChoiceMetadataFieldViewModel"}
)
生成下面的HTML:
<SELECT id="MetadataFields_10__Value" name="MetadataFields[10].Value" multiple="multiple" >
<OPTION value="Wakka">Wakka</OPTION>
<OPTION value="Splat">Splat</OPTION>
<OPTION value="Bang">Bang</OPTION>
</SELECT>
而且我綁定到更改事件通過jQuery(v1.6.4):
$('#someDivAboveTheSelect select').change(function() {
alert('change event');
});
當我按Ctrl +單擊要更改的S上的改變事件處理函數不是擊中選舉,除非我做 東西導致第一個選擇在列表中改變。所以,如果我選擇Wakka,然後按Ctrl +單擊Splat我沒有得到事件。但是,如果我選擇Splat然後按Ctrl +單擊Wakka我做。
正常的點擊更改工作得很好。在Chrome和Firefox中一切正常。
有人知道這裏發生了什麼嗎?我懷疑這可能是關於在選擇選項上需要ID的事情......如果是這種情況,我如何使MVC發生這種情況?
感謝
我覺得IE很討厭是你。 – Jrud
作爲一個起點,嘗試使用有效的HTML,引用選項值,即''。不知道是否可以修復它。 – karim79
糟糕 - 我在IE開發工具中使用「複製外部HTML」來獲取輸出結果,這些工具會將引號留下。我會在帖子中修復它... –