Почему средство выбора IOS 7.0.3 искажает мою веб-форму LiveCode?

Я не знаю, где лучше спросить об этом. Моя проблема связана с IOS 7.0.3 и с тем, как Safari обрабатывает средство выбора в веб-форме. Я создал веб-форму с LiveCode, которая прекрасно работает во всех браузерах, которые я пробовал. А вот на айфоне пикер работает со сбоями. Если вы выберете один элемент и нажмете «Готово», он вернется к 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>

Это URL-адрес: http://lc.scs.earlham.edu/soul_therapy3.lc

Кстати, я использую его с iframe на своем сайте Drupal 7:

http://soulshare.org/soul_therapy/tool


person Tim    schedule 30.10.2013    source источник
comment
Я создал веб-форму в Drupal со списком с множественным выбором и протестировал ее в IOS 7.0.3, и она работает неправильно. Я получаю тот же результат, что и с моей веб-формой LiveCode. Так что проблема не в LiveCode. Я не понимаю, почему я не вижу, чтобы кто-то указал на эту проблему. Я должен отправить его в Apple и посмотреть, что они скажут.   -  person Tim    schedule 01.11.2013
comment
Проблема множественного выбора возникает в iOS 7.0.3 как в Safari, так и в Chrome (который застрял с использованием одного и того же WebKit). Я воспроизвел проблему с минимальной HTML-страницей, где колесо выбора ведет себя очень загадочно. gist.github.com/nathany/7328609 Я отправил пример HTML как проблему Apple от 29 октября 2013 г. Ответа пока нет. Не стесняйтесь также открывать проблему, это поможет Apple распознать, что с ней сталкиваются несколько человек: bugreport.apple.com   -  person nathany    schedule 06.11.2013


Ответы (2)


В iOS7 есть проблема (выбор дизайна?), когда вам нужно не только прокрутить до правильного значения, но и коснуться выбранного значения. Хотя не знаю, твоя ли это проблема...

В некоторых формах вам нужно только прокрутить до правильного значения, но во многих вам нужно прокрутить, а ЗАТЕМ выбрать. Как вы, наверное, догадались, это не имеет никакого отношения к LiveCode...

person hliljegren    schedule 31.10.2013
comment
Верно. Я попробовал демо-сайт, и все работает нормально, возможно, потому, что я нажал после прокрутки. - person Mark; 01.11.2013

Это ошибка в IOS, о которой было сообщено Apple. В настоящее время лучшее решение, которое я нашел, использует 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

person wickdninja    schedule 03.02.2014