html5 – 在Safari iOS 7中多次选择

前端之家收集整理的这篇文章主要介绍了html5 – 在Safari iOS 7中多次选择前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我在一个选择下拉菜单中使用多个选项时,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 += '>&laquo; Select ' + (select.attr('title') || 'Options') + ' &raquo;';
            firstOption += '</option>';
            select.prepend(firstOption);
        });
    }

猜你在找的HTML5相关文章