我的 HTML 中有一个非常简单的元素:
<select multiple="multiple" size="19" name="Title[book_types_array][]" id="Title_book_types_array">
<option value="0">None Selected</option>
<option value="1" selected="selected">Textbook School</option>
<option value="2">Textbook Undergraduate</option>
</select>
而且我有一些 JQuery,它神奇地允许单击多个选择:
$('select[multiple] option').click(function(e){
var self = $(this);
e.preventDefault();
if (self.attr('selected'))
self.removeAttr('selected');
else
self.attr('selected', 'selected');
});
这在 Firefox 上很有效,但在 Chrome 上无效。
它在技术上适用于 Chrome,但不会刷新元素。例如,我选择了两个选项,然后取消选择它们,它仍然显示它们为选中状态。但是,当我在元素中选择一个新选项时,它现在将正确刷新并取消选择我之前未选择的两个元素。如果我单击另一个窗口然后再次返回,它也会刷新元素。
这是 Chrome 中带有此元素的某种错误,还是我遗漏了什么?
编辑
通过查看控制台,我可以看到它是如何取消选定属性的,它只是没有刷新元素。
添加示例:http: //jsfiddle.net/Udf5c/