Selezione multipla in Safari iOS 7

Quando utilizzo l’opzione multipla in un menu a discesa di selezione, Safari si presenta in strani problemi. Quando seleziono un’opzione e dico Fatto, il menu a discesa torna a mostrare ‘0 elementi’. Ma se seleziono più opzioni (più di una), viene selezionato tutto tranne il primo. Dopo questo, se deseleziono tutte le opzioni, l’ultima rimane selezionata.

Controlla questo per una demo utilizzando Safari su iOS 7.0.3.

 option 1 option 2 option 3  

Ho visto http://www.thecssninja.com/html/optgroup-ios6 , ma questo parla di problemi con l’utilizzo di optgroups – che (se usato con più) al momento sembra distruggere completamente il safari.

  // hack for iPhone 7.0.3 multiselects bug if(navigator.userAgent.match(/iPhone/i)) { $('select[multiple]').each(function(){ var select = $(this).on({ "focusout": function(){ var values = select.val() || []; setTimeout(function(){ select.val(values.length ? values : ['']).change(); }, 1000); } }); var firstOption = ''; select.prepend(firstOption); }); } 

Semplice aggiungere:

  

come il primo elemento di selezione multipla.

Questo è stato in parte risolto in 7.1 che è stato rilasciato l’altro giorno, tuttavia, ci sono ancora molti problemi. Il conteggio degli articoli ora è corretto, ma …

  • è ansible selezionare i titoli optgroup (non si dovrebbe essere in grado di farlo, e in caso affermativo, dovrebbe almeno selezionare / deselezionare l’intero gruppo.

  • se disabiliti un’opzione puoi ancora selezionarla, il che ovviamente è totalmente sbagliato.

Prendi insieme Apple.

I bug di “selezione multipla” in Safari in iOS 7.0.3 su iPhone sono stati segnalati anche da altri, nei forum di discussione di Apple; per esempio:

https://discussions.apple.com/message/23745665#23745665

https://discussions.apple.com/message/23607781#23607781

Poiché è Apple a dover risolvere questo problema, l’approccio di consenso per ciò che puoi fare per facilitare la risoluzione di questo problema, per post in questi due thread di discussione, è:

  • Cerca eventuali bug esistenti e, se necessario, crea un nuovo bug, tramite Bug Reporter di Apple.
  • Partecipa a qualsiasi argomento di discussione esistente su questo nei forum degli sviluppatori di Apple e apri un nuovo argomento se questo non è ancora stato discusso. (Le discussioni sopra hanno avuto luogo nei forum pubblici di Apple, nell’area “Utilizzo di iPhone”, e come tale potrebbero non essere necessariamente viste o gestite dal personale di supporto per gli sviluppatori Apple).

Mi sembra di aver trovato una soluzione con misteriosamente funziona con jQuery. Immagino che potresti vanigliare il codice se non vuoi la dipendenza da jQuery:

 /** * iOS mutliple select fix. */ if (navigator.userAgent.match(/(iPod|iPhone|iPad)/)) { $('select[multiple]').each(function() { $(this).prepend(''); $(this).append(''); }); }