2011-11-04 3 views
15

누구도 이에 대한 대안을 알고 있습니까? 탐색을 위해 select 요소를 사용하려고합니다. 이것은 다음과 같이 보입니다.iOS는 발사하지 않음을 선택하십시오.

<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 페이지로 양식 작업을 설정했습니다. 제출 버튼도 필요하지 않습니다 (iOS 목록 선택기 위젯은 '완 전'버튼을 누를 때 양식 작업을 자동으로 트리거합니다.

js onChange 접근법이 더 깨끗하다고 ​​느꼈기 때문에 원래 양식 작업을 피하고 제출 버튼을 원했지만 제출 버튼이 필요하지 않으므로 iOS에서 php를 사용해도됩니다.