2013-12-08 13 views
10

Selectize.js consente di trasformare gli input in widget con tagging, completamento automatico, ecc. Sto tentando di aggiungere tag in input utilizzando il codice.Aggiungi l'elemento da immettere in modo programmatico

Ecco quello che ho finora.

$(function() { 
    $("#tags").selectize({ 
     create: true 
    }) 

    var selectize_tags = $("#tags")[0].selectize 
    selectize_tags.createItem("foo") 
    selectize_tags.refreshItems() 
}) 

http://jsfiddle.net/qDL37/

Purtroppo, “foobar” non si aggiunge alla casella di input. Per quanto ne so, è the correct way farlo.

Potrebbe essere un errore in selectize.js? Ho provato a cercare tra i problemi di GitHub, ma non ho trovato nulla di simile.

Inoltre ho provato a leggere il codice di selectize.js, ma senza fortuna.

risposta

19

Grazie a persone straordinarie di #javascript @freenode, questo è il modo corretto.

$(function() { 
    $("#tags").selectize({ 
     create: true 
    }) 

    var selectize_tags = $("#tags")[0].selectize 
    selectize_tags.addOption({ 
     text:'Foo', 
     value: 'foo' 
    }); 
    selectize_tags.addItem('foo') 
    // selectize_tags.refreshItems() 
}) 

http://jsfiddle.net/qDL37/1/

+0

Sto avendo lo stesso problema, ma io sto usando l'opzione 'ValueField, labelField, searchField'. Hai una soluzione per questo? – Fabrizio

+2

@Fabrizio La mia ipotesi sarebbe quella di cambiare le chiavi 'text' e' value' ai valori che hai specificato [per 'labelField' e' valueField'] (https://github.com/brianreavis/selectize.js/blob/master /docs/usage.md#data_searching). – daGrevis

+0

trascorso 2 ore a cercarlo, questo argomento era nella parte inferiore dei risultati searc di Google. grazie, funziona !!! – Skyzer