1

この件についてどこに聞いたらよいのかわかりません。私の問題は、IOS 7.0.3 と、Safari が Web フォームでピッカーを処理する方法にあるようです。私が試したすべてのブラウザーで問題なく動作する LiveCode を使用して Web フォームを作成しました。しかし、iPhone では、ピッカーが誤動作します。アイテムを 1 つ選択して [完了] を押すと、0 個のアイテムが選択された状態に戻ります。2 つのアイテムを選択して [完了] を押すと、選択された 1 つのアイテムが表示されます。同じことが 3、4 などにも当てはまります。他の誰かがこの経験をしたことがありますか? 以下は、複数選択ボタンの 1 つのスニペットです。

<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

ちなみに、私は Drupal 7 サイトの iframe で使用しています。

http://soulshare.org/soul_therapy/tool

4

2 に答える 2

0

これは 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 での複数選択

于 2014-02-03T12:46:26.993 に答える
0

iOS7 には、正しい値までスクロールするだけでなく、選択した値をタップする必要があるという問題 (設計の選択?) があります。これがあなたの問題かどうかはわかりませんが...

一部のフォームでは、正しい値までスクロールするだけで済みますが、多くのフォームでは、スクロールしてから選択する必要があります。おそらくご想像のとおり、これは LiveCode とは何の関係もありません...

于 2013-10-31T16:55:57.303 に答える