强制 Safari iOS 选择组件在选项更改时更新

Raf*_*afe 8 html javascript safari mobile-safari ios

当您使用 iOS (iPhone) 在网页上点击选择输入时,会弹出一个微调小部件(“选择器”),让您在该选择中旋转并选择选项。假设您已经点击其中之一并且选择器小部件已打开。当它打开时,如果您使用 javascript 修改选择选项(通过 dom 添加、删除、更新选项),那么这些更改不会反映在小部件中,除非用户关闭并重新打开小部件。

有没有办法强制浏览器自动更新选项?

在此处输入图片说明

编辑:这是一个示例,您可以用来观察更新选择选项如何不更新选择器小部件:http : //jsfiddle.net/RrsNk/

<select id="my-select" />

$(function () {
    updateSelect();
});

function updateSelect() {
    $("#my-select").empty();
    for (i = 0; i < 5; i++) {
        var ran = Math.random();
        $("<option />").attr("value", ran).html(ran).appendTo("#my-select");
    }
    setTimeout(updateSelect, 2000);
}
Run Code Online (Sandbox Code Playgroud)

all*_*rog 3

Safari 使用 aUIPickerView来显示下拉菜单。正如您所期望的,页面中下拉组件的标题会根据 DOM 中的更改进行更新,但选择器视图与 DOM 耦合不紧密,因此不会更新。Chrome 和 Opera Mini 的情况相同。

所以总而言之,你想要实现的东西是不可能的。您应该寻找其他方法来使您的数据集可访问。