2011-11-04 67 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很好,因爲它不需要提交按鈕。