javascript - processresults - select2 span




Selezione di un valore in select2 con optGroup (3)

Sto dando i seguenti dati in input per select2

data = [{
    "id": "all",
    "text": "All",
    "children": [{
        "id": "item1",
        "text": "item1"
    }, {
        "id": "item2",
        "text": "item2"
    }]
}];

e sto inizializzando select2 come:

$(parent).select2({"data":data});

Ora per selezionare il valore " item1 ", l'ho fatto

$(parent).select2("val",["item1"]);

Tuttavia, anziché il valore " item1 ", viene selezionato " all ". Come selezionare il valore item1?


Ho provato a realizzare questa demo per dimostrarti che funziona. La demo utilizza il tag select come selettore per un elemento select vuoto ed esistente. In effetti, non so cosa intendi per parent :

<select>
</select>
<script>
data = [{
    "id": "all",
    "text": "All",
    "children": [{
        "id": "item1",
        "text": "item1"
    }, {
        "id": "item2",
        "text": "item2"
    }]
}];

$('select').select2({
    "data": data
});

$('select').select2("val", ["item2"]);

</script>

Non sono sicuro se intendi che il valore "Tutto" viene selezionato all'inizio o se vuoi selezionare "elemento1" per codice e non funziona. Trovo strano che "Tutto" venga selezionato come valore poiché dovrebbe essere trattato come una categoria, anche aggiungendo

$(".select2-text").select2("val",["item1"]);

non selezionerà "Tutto" per me. Se aggiungo

$(".select2-text").select2("val",["item2"]);

Selezionerà "item2" per me (il che significa che il metodo per selezionare l'elemento funziona, anche se non è il modo migliore, come indicato nella risposta di Lelio Faieta)

se aggiungo

$(".select2-text").select2("val",["all"]);

non selezionerà "Tutto" per me, mi mostrerà solo una selezione vuota. Quindi penso che ci deve essere un problema con il tuo codice perché in una pagina pulita non sembra esserci alcun modo per selezionare "Tutti"

Puoi mostrarci l'intero codice, incluso l'html della tua pagina (almeno la parte relativa alla selezione). Ho provato questo (vedi plunker qui: http://plnkr.co/edit/m6pFUt?p=preview )

<script>
$(document).ready(function() {
    data = [{
        "id": "all",
        "text": "All",
        "children": [{
            "id": "item1",
            "text": "item1"
        }, {
            "id": "item2",
            "text": "item2"
        }]
    }];

    $(".select2-text").select2({
        "data": data
    });
});
</script>
<select class="select2-text"></select>

E inizia con item1 selezionato, mentre "All" viene trattato come una categoria. Quindi forse è solo perché c'è qualcosa di sbagliato nel codice / HTML.
Quale versione di Select2 stai usando? sto usando 2-4.0.0


JSFiddle dove JSFiddle è selezionato.

JS:

var data = [{
    id: 'all',
    text: 'All',
    children: [{
        id: 'item1',
        text: 'item1'
    }, {
        id: 'item2',
        text: 'item2'
    }]
}];

$('.js-example-data-array').select2({data:data});

$('.js-example-data-array').select2('val',['item1']);

HTML:

<select class="js-example-data-array">
</select>




jquery-select2