IOS выбрать onchange not firing

Кто-нибудь знает какие-либо обходные пути для этого? Я пытаюсь использовать элемент select для навигации. Это выглядит примерно так:

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

Он работает на всех настольных браузерах, а также работает на моем телефоне WP7. Он не работает на моем iPhone (iOS 5.0).

Ответы

Ответ 1

iOS имеет тенденцию не запускать события change, когда вы меняете значение своих входов. Я задокументировал это более подробно на трекерах Device-Bugs.

Обходной путь заключается в привязке к событию blur. В приведенном выше примере используйте onblur, и все будет установлено.

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

Ответ 2

Я только что установил действие формы на страницу php, которая перенаправляет страницу. Вам даже не нужна кнопка отправки (хотя вы можете добавить ее для изящного деградации, а затем скрыть ее с помощью js), виджет выбора списка iOS автоматически запускает действие формы при нажатии кнопки "Готово".

Я изначально хотел избежать действий формы и отправки кнопок, потому что я чувствовал, что подход js onChange был чище, но я в порядке с использованием php на iOS, поскольку для него не требуется кнопка отправки.