【问题标题】:iOS select onchange not firingiOS选择onchange不触发
【发布时间】:2011-12-21 16:46:06
【问题描述】:

有没有人知道任何解决方法?我正在尝试使用选择元素进行导航。它看起来像这样;

<select onchange="window.location=(this.options[this.selectedIndex].value)">

它适用于所有桌面浏览器,也适用于我的 WP7 手机。它不适用于我的 iPhone (iOS 5.0)。

【问题讨论】:

    标签: javascript html mobile-safari onchange


    【解决方案1】:

    当您更改输入值时,iOS 往往不会触发 change 事件。我有documented this in more depth at the Device-Bugs tracker

    解决方法是绑定到blur 事件。在上面的示例中,使用 onblur 即可完成设置。

    <select onblur="window.location=(this.options[this.selectedIndex].value)">
    

    【讨论】:

    • 他们会在用户“点击”选项后立即触发事件......所以它不是会触发更改的“完成”事件。所以是的,在这种情况下,模糊是首选。这种碎片化真是垃圾……
    【解决方案2】:

    如果您将 onchange 更改为 onblur 它适用于 iOS,但不适用于其他设备。我最终找到的解决方法是同时使用onbluronchange。看起来是多余的,但有预期的效果。

    【讨论】:

      【解决方案3】:

      我刚刚将表单操作设置为重定向页面的 php 页面。您甚至不需要提交按钮(尽管您也可以添加一个用于优雅降级然后用 js 隐藏它),iOS 列表选择器小部件在按下“完成”按钮时会自动触发表单操作。

      我最初想避免表单操作和提交按钮,因为我觉得 js onChange 方法更干净,但我可以在 iOS 上使用 php,因为它不需要提交按钮。

      【讨论】:

        猜你喜欢
        • 2015-07-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多