Javascript 使用optgroups IOS修复程序进行多个选择?

Javascript 使用optgroups IOS修复程序进行多个选择?,javascript,jquery,html,ios,iphone,Javascript,Jquery,Html,Ios,Iphone,遇到这样一种情况,我需要在我的站点上使用多个选择和分组。在尝试使用此功能时,IOS存在一个巨大的问题。我做了一些研究,显然这个bug已经存在了很长一段时间了。在此期间有人找到了解决办法吗?我愿意尝试任何事情。。。修复、解决方法、提供多种选择的完全不同的方法等。。。我只需要给用户从组中选择倍数的能力(我唯一的要求) 我的测试涉及到一台7.0.6版本的iphone(最新版本在撰写本文时)。从我所能发现的情况来看,6.0版也是如此?作为html的一个基本的“老”功能,苹果还没有解决这个问题,这简直是近

遇到这样一种情况,我需要在我的站点上使用多个选择和分组。在尝试使用此功能时,IOS存在一个巨大的问题。我做了一些研究,显然这个bug已经存在了很长一段时间了。在此期间有人找到了解决办法吗?我愿意尝试任何事情。。。修复、解决方法、提供多种选择的完全不同的方法等。。。我只需要给用户从组中选择倍数的能力(我唯一的要求)

我的测试涉及到一台7.0.6版本的iphone(最新版本在撰写本文时)。从我所能发现的情况来看,6.0版也是如此?作为html的一个基本的“老”功能,苹果还没有解决这个问题,这简直是近乎疯狂

html:

使用这种方式,移动safari简直崩溃了

<select class="form-control" multiple="multiple" name="settings[users]">
    <optgroup label="Computer 1">
        <option>Option 1</option>
        <option>Option 2</option>
        <option>Option 3</option>
        <option>Option 4</option>
        <option>Option 5</option>
    </optgroup>
    <optgroup label="Computer 2">
        <option>Option 1</option>
        <option>Option 2</option>
        <option>Option 3</option>
        <option>Option 4</option>
        <option>Option 5</option>
    </optgroup>
</select>

选择1
选择2
选择3
选择4
备选案文5
选择1
选择2
选择3
选择4
备选案文5
使用这种方式,它不会崩溃,但是,所选项目的问题是显而易见的。如果我选择了前5个选项,那么只要我单击“完成”,它就会变为4个。如果我没有选择任何选项,则会选择第一个禁用选项“计算机1”,这应该是不可能的。我相信这是由于下面列出的js修复

<select class="form-control" multiple="multiple" name="settings[users]">
    <option disabled="disabled">Computer 1</option>
    <option>Option 1</option>
    <option>Option 2</option>
    <option>Option 3</option>
    <option>Option 4</option>
    <option>Option 5</option>
    <option disabled="disabled">Computer 2</option>
    <option>Option 1</option>
    <option>Option 2</option>
    <option>Option 3</option>
    <option>Option 4</option>
    <option>Option 5</option>
</select>

计算机1
选择1
选择2
选择3
选择4
备选案文5
计算机2
选择1
选择2
选择3
选择4
备选案文5
我找到的可能的JS修复程序:

此修复程序似乎无法处理OptGroup(我必须拥有OptGroup,因为不同的计算机可能具有相同的选项,但会有完全不同的值),但即使这样也无法解决问题

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);
    });
}
if(navigator.userAgent.match(/iPhone/i)){
$(“选择[多个])。每个(函数(){
var select=$(this).on({
“focusout”:函数(){
var values=select.val()| 124;[];
setTimeout(函数(){
select.val(values.length?值:['']).change();
}, 1000);
}
});
var firstOption='«;Select'+(Select.attr('title')| |'Options')+'»;
第一选项+='';
选择.prepend(第一个选项);
});
}

您是否解决过此问题?在iOS 9中,Safari仍然与
optgroup
s一起崩溃。我最终使用jquery脚本来显示选项(select2),由于脚本的工作方式和显示方式,这个问题在这种情况下不再适用。我不确定原始问题是否仍然发生,因为我没有检查。我曾试图向苹果公司提交一份缺陷报告,但不断收到自动邮件,“这仍然是个问题吗?”?请提供更多的信息,这告诉我没有人看它-我给了他们复制它所需要的一切,就像我在这里做的一样-他们应该很容易检查。好的,谢谢你回复我。这似乎是一个失败的事业。