1

我不知道问这个问题的最佳地点在哪里。我的问题似乎与 IOS 7.0.3 以及 Safari 如何处理网络表单中的选择器有关。我使用 LiveCode 创建了一个 Web 表单,它在我尝试过的每个浏览器中都能正常工作。但在 iPhone 上,选择器出现故障。如果您选择一项并按完成,它将恢复为选择的 0 项。如果您选择两项并按完成,则显示已选择一项。三、四等也是如此。有没有其他人有这种经验?这是多项选择按钮之一的片段。

<label for="authors[]">
Select Author(s)
  <select name="authors[]" id="authors" multiple="yes" size="7" >
<?lc
    put the number of lines in tAuthorList into tTotalAuthors
    repeat with x = 1 to tTotalAuthors
        put "<option value=" & q(line x of tAuthorList)
        put lineOffset(line x of tAuthorList,tPrevAuthors) into tLineHit
        if bDataSubmitted and line x of tAuthorList is line tLineHit of tPrevAuthors then
            put " selected"
        end if
        put ">" & line x of tAuthorList & "</option>" & return
    end repeat
?>      
  </select>
</label>

这是网址: http: //lc.scs.earlham.edu/soul_therapy3.lc

顺便说一句,我在我的 Drupal 7 站点中将它与 iframe 一起使用:

http://soulshare.org/soul_therapy/tool

4

2 回答 2

0

iOS7 中存在一个问题(设计选择?),您不仅需要滚动到正确的值,还需要点击您选择的值。虽然不知道是不是你的问题...

在某些表单中,您只需要滚动到正确的值,但在许多表单中,您需要滚动然后选择。正如您可能已经猜到的那样,这与 LiveCode 无关......

于 2013-10-31T16:55:57.303 回答
0

这是 IOS 中的一个错误,已向苹果报告。目前,我发现的最佳解决方案使用 jQuery 在关闭选择器时修复所选项目。只需将其粘贴到您的 JS 文件中即可。

// 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);
    });
}

Safari iOS 7 中的多选

于 2014-02-03T12:46:26.993 回答