我试图创建多选列表并在选择更改时执行一些操作。我有在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”来获取输出结果,这些工具会将引号留下。我会在帖子中修复它... –