2011-11-04 31 views
15

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

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

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

回答

24

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

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

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

完美地工作。谢谢 –

+0

在用户“点击”选项后,他们确实触发了事件......所以它不是那些会引发变化的“完成”事件。所以,在这种情况下,模糊是首选。它是一个垃圾碎片... – Miguel

0

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

我原本想避免表单动作并提交按钮,因为我觉得js onChange方法更清洁,但是我在iOS上使用php很好,因为它不需要提交按钮。