当我在一个选择下拉菜单中使用多个选项时,Safari就会遇到奇怪的问题。当我选择一个选项并说完成时,下拉列表可以显示“0项”。但是,如果我选择多个选项(多个),则除第一个以外的所有选项都被选中。之后,如果我取消选择所有选项,最后一个仍然被选中。
在iOS 7.0.3上使用safari查看this for a demo。
<select multiple="multiple"> <option value="1">option 1</option> <option value="2">option 2</option> <option value="3">option 3</option> </select>
我看过http://www.thecssninja.com/html/optgroup-ios6,但是谈到使用optgroups的问题 – (当与多个使用时)目前似乎完全崩溃了safari。
解决方法
// hack for iPhone 7.0.3 multiselects bug if(navigator.userAgent.match(/iPhone/i)) { $('select[multiple]').each(function(){ var select = $(this).on({ "focusout": function(){ var values = select.val() || []; setTimeout(function(){ select.val(values.length ? values : ['']).change(); },1000); } }); var firstOption = '<option value="" disabled="disabled"'; firstOption += (select.val() || []).length > 0 ? '' : ' selected="selected"'; firstOption += '>« Select ' + (select.attr('title') || 'Options') + ' »'; firstOption += '</option>'; select.prepend(firstOption); }); }