2011-11-04 12 views
15

Qualcuno sa qualche soluzione alternativa per questo? Sto cercando di usare un elemento select per la navigazione. Sembra qualcosa del genere;IOS seleziona onchange non attiva

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

Funziona su tutti i browser desktop e funziona anche sul mio telefono WP7. Non funziona sul mio iPhone (iOS 5.0).

risposta

24

iOS tende a non generare eventi change quando si modifica il valore dei propri input. Ho documented this in more depth at the Device-Bugs tracker.

La soluzione alternativa è di associare invece l'evento blur. Nell'esempio sopra, usa onblur e sarai tutto pronto.

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

Funziona perfettamente. Grazie –

+0

Fanno scoppiare l'evento subito dopo che l'utente "fa clic" sull'opzione che è la cosa ... Quindi non sono gli eventi "completati" che generano il cambiamento. Quindi sì, la sfocatura è preferibile in questo caso. È una schifezza questa frammentazione ... – Miguel

0

Ho appena finito di impostare l'azione modulo su una pagina php che reindirizza la pagina. Non hai nemmeno bisogno di un pulsante di invio (anche se puoi anche aggiungerne uno per degradazione graduale e poi nasconderlo con js), il widget di selezione elenco di iOS attiva automaticamente l'azione modulo quando viene premuto il pulsante 'Fine'.

Originariamente volevo evitare le azioni del modulo e inviare pulsanti perché sentivo che l'approccio js onChange era più pulito, ma sto bene con l'uso di PHP su iOS poiché non richiede il pulsante di invio.

Problemi correlati