2016-02-02 14 views
6

Ho una forma con un semplice ingresso e un ingresso select2 modo: http://codepen.io/anon/pen/QyBxwEselect2 multiplo impedisce altri input da presentare modulo a inserire

Premendo entrare mentre il primo ingresso è focalizzata deve inviare il modulo (in questo caso, reindirizzare a una pagina 404).

Per qualche motivo, l'ingresso select2 multiplo impedisce l'invio del modulo. Se rimuovo la classe select2 o l'attributo multiple, il modulo si comporta normalmente.

Testato su Mac OS X Yosemite su Safari, Chrome e Firefox e avviene costantemente su tutti i browser.

(sto usando jQuery 2.1.3 e 4.0.1 select2)

+0

Dovresti controllare la cattura dell'evento; sembra che la gestione della tastiera sia un po 'troppo pazzesca. –

risposta

4

Come si forma il lavoro è che quando si fa clic su entra, ha alcune operazioni predefinite che cerca di preforme. Il primo passo è inviare il modulo. Funziona solo se non ci sono altri JavaScript che impediscono l'invio del modulo. Select2 multiplo elimina l'operazione predefinita impedendo il default. In questo modo quando inizi a digitare e fai clic su entra, non viene automaticamente inviato.

La soluzione è utilizzare il secondo tipo di opzione predefinita. Questo è quello di avere un pulsante di invio sulla pagina. Il modulo con andare al pulsante di invio più vicino e fare clic su quello. Questa operazione non è sovrascritta da select2 JavaScript.

http://codepen.io/anon/pen/yeqxQJ

basta aggiungere <input type="submit"> al form, e dovrebbe funzionare nel modo che desidera.

+0

E se davvero hai bisogno del pulsante al di fuori del modulo? – Daniella

+0

puoi usare css per nascondere il pulsante interno con nessuna visibilità. Visualizza nessuno Credo che si sbarazzi della funzionalità del pulsante di invio. Quindi puoi avere un tasto 'all'esterno dell'elemento del modulo. Ma se puoi aiutarlo, quindi fai in modo che il modulo includa anche il pulsante. – Neoaptt