有人知道如何解决这个问题吗?我想使用一个 select 元素来进行导航。它看起来像这样;
<select onchange="window.location=(this.options[this.selectedIndex].value)">
它适用于所有的桌面浏览器,也适用于我的WP7手机。但它不能在我的iPhone(iOS 5.0)上使用。
有人知道如何解决这个问题吗?我想使用一个 select 元素来进行导航。它看起来像这样;
<select onchange="window.location=(this.options[this.selectedIndex].value)">
它适用于所有的桌面浏览器,也适用于我的WP7手机。但它不能在我的iPhone(iOS 5.0)上使用。
iOS往往在更改其输入值时不会触发change
事件。我已经在Device-Bugs跟踪器上对此进行了更深入的记录。
解决方法是绑定到blur
事件而不是change
事件。在上面的示例中,使用onblur
即可解决问题。
<select onblur="window.location=(this.options[this.selectedIndex].value)">
onchange
更改为 onblur
,它可以在 iOS 上工作,但在其他平台上无法正常工作。最终我采用的解决方法是同时使用 onblur
和 onchange
。这看起来有些冗余,但却可以达到预期的效果。我最终将表单操作设置为重定向页面的php页面。您甚至不需要提交按钮(尽管可以添加一个以实现优雅降级,然后使用js隐藏它),iOS列表选择器小部件在按下“完成”按钮时自动触发表单操作。
我最初想避免表单操作和提交按钮,因为我认为js onChange方法更清晰,但是在iOS上使用php是可以接受的,因为它不需要提交按钮。