iOS select onchange not firing



有人知道这个问题的解决方法吗?我试图使用一个选择元素进行导航。它看起来像这样;

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

它适用于所有桌面浏览器,也适用于我的WP7手机。

当你改变iOS的输入值时,它往往不会触发change事件。我在Device-Bugs tracker中对此进行了更深入的记录。

解决方法是绑定到blur事件。在上面的示例中,使用onblur,您将所有设置。

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

如果将onchange更改为onblur,则适用于iOS,但不适用于其他。我最终的解决办法是同时使用onbluronchange。看起来有点多余,但是有想要的效果。

最后将表单动作设置为一个php页面,该页面将重定向到该页面。你甚至不需要提交按钮(虽然你也可以添加一个优雅的降级,然后隐藏它与js), iOS列表选择器小部件自动触发表单操作时,它的"完成"按钮被按下。

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

使用input事件(参见文档)

最新更新