2015-05-27 13 views
21

Ho provato il nuovo Select2 v4.0 che ha molti miglioramenti. Sono principalmente interessato alla funzione tags. Voglio essere in grado di cercare tag tramite Ajax e solo essere in grado di selezionare un tag dai risultati mostrati e non essere in grado di creare nuovi tag. La funzionalità è simile a StackOverflow: se non si ha la reputazione necessaria, non è possibile creare nuovi tag, ma è ancora possibile taggare una domanda con tag esistenti.Come disabilitare la creazione di nuovi tag con select2 v4.0?

Ecco uno jsfiddle con il mio codice che è preso dagli esempi. Nell'esempio, puoi creare nuovi tag che sono ciò che voglio limitare. L'utente dovrebbe essere in grado di selezionare i tag solo dall'elenco che è stato recuperato da GitHub tramite ajax.

Qualcuno sa come disabilitare questa funzionalità?

risposta

35

Questo dovrebbe funzionare - nella inizializzazione del Select2, provare restituisce undefined dalla funzione CreateTag in questo modo:

createTag: function(params) { 
       return undefined; 
      } 
+1

Ci scusiamo per la risposta tardiva. Questo sembra funzionare bene per me. Grazie per aver condiviso! :) – tftd

+0

@tftd puoi aggiornare il violino usando questa soluzione, come ho provato ad aggiornare il violino che hai inviato ma non funziona in questo. –

+6

Apparentemente questo era chiamato 'createSearchChoice()' in Pre-4.0 (3.5.3) Select2. Hanno cambiato molti nomi di funzioni quando sono passati a 4.0. –

2

È possibile disabilitare i tag rimuovendo tags: true durante l'inizializzazione di Select2. In alternativa, impostare tags: false durante l'inizializzazione di Select2. I tag sono abilitati solo a if the tags option is truthy, ovvero quando si passa a true.

+0

sto cercando il seguente [effetto visivo] (https://camo.githubusercontent.com/d700cc5a313d0dfb98450132b62e1da0fd727ef1/687474703a2f2f6165686c6b652e6769746875622e636f6d2f7461672d69742f5f7374617469632f73637265656e73686f742e706e67). Se imposto 'tag: false' (o semplicemente lo ometto), tornerà a una casella di selezione. Nel mio caso ho bisogno che funzioni più come [tag-it] (http://aehlke.github.io/tag-it/) piuttosto che in una casella di selezione. – tftd

+0

Non sono del tutto sicuro di cosa intendi, e sfortunatamente senza jsfiddle/jsbin da guardare (quello che hai adesso rispetto a quello che vuoi), è difficile rispondere a qualsiasi domanda oltre la domanda nel titolo. Non sono sicuro di cosa intendi per "tornare a una casella di selezione". Stai cercando l'opzione 'multipla ', per caso? –

+0

Probabilmente non l'ho spiegato abbastanza bene - mi dispiace per quello. Quello che intendevo è che se rimuovo 'tags: false' diventerà una selectbox come nell'esempio [Caricamento dati remoti] (https://select2.github.io/examples.html). Ho aggiornato la mia domanda. Spero che questo abbia più senso? – tftd

15

ho lottato con questo pure, ma ottenuto lavorando dopo poche ore.

Avevo specificato alcuni separatori di token (perché ai miei visitatori è consentito creare tag in un punto diverso del sito Web). Risulta che i separatori sono ancora applicati anche se la configurazione dello tags è impostata su false.

Soluzione: tags: false e NON aggiungere un valore per tokenSeperators. Mantieni multiple: true.

Problemi correlati