jQuery select2 ottiene il valore del tag select?


95

Ciao amici, questo è il mio codice:

<select id='first'>
  <option value='1'> First  </option>
  <option value='2'> Second </option>
  <option value='3'> Three  </option>
</select>

Questo è il mio codice select2:

$("#first").select2();

Di seguito è riportato il codice per ottenere il valore selezionato.

$("#first").select2('val'); // It returns first,second,three.

Questo è restituire un testo come first,second,threee voglio ricevere 1,2,3.
Significa che ho bisogno del valore della casella di selezione, non del testo.


Potete fornire un JSFiddle? Sarebbe molto utile.
— Ionică Bizău

1
la domanda non è chiara. esattamente cosa vuoi?
— Hiral

Risposte:


148
$("#first").val(); // this will give you value of selected element. i.e. 1,2,3.

5
$ ("# primo"). val (); // restituisce 1,2,3 OR $ ("# first"). select2 ('val'); // ritorna primo, secondo, tre
— Renish Khunt

$ ("# primo"). val (); restituirà 1,2,3 (qualunque sia selezionato) e puoi inserire il codice nella funzione select2 () per maggiori dettagli.
— po '

per una selezione chiamata dal nome dell'ID invece del nome della classe, utilizzare: $ (". first"). val ()
— Rui Martins

@RuiMartins ha sbagliato. Gli ID vengono chiamati con "#" e le classi con ".", Quindi per chiamare con ID, dovresti usare $ ("# first"). Val () e per CLASS dovresti usare $ (". First" ) .val ()
— Source Matters

58

Per ottenere Seleziona elemento puoi usare $('#first').val();

Per ottenere il testo del valore selezionato - $('#first :selected').text();

Puoi per favore pubblicare il tuo select2()codice funzione


1
$ ("# primo"). val (); // restituisce 1,2,3 OR $ ("# first"). select2 ('val'); // ritorna primo, secondo, tre
— Renish Khunt

Non sono sicuro, ho capito la tua domanda.
— Krish R

1
quando ho usato il plugin select2, ottengo il valore usando $ ("# first"). val (). non restituisce nulla, ritorna vuoto.
— Renish Khunt

Potete fornire fiddle exmaple con il vostro plugin?
— Krish R

1
Ho dovuto usare $('#first :selected').text();l'altra opzione per restituire tutte le opzioni possibili.
— Jeff Bluemel

35

$("#first").select2('data') restituirà tutti i dati come mappa


1
Molto utile se hai proprietà extra sugli oggetti select2
— Scarpa

9

Se stai usando ajax , potresti voler ottenere il valore aggiornato di select subito dopo la selezione.

//Part 1

$(".element").select2(/*Your code*/)    

//Part 2 - continued 

$(".element").on("select2:select", function (e) { 
  var select_val = $(e.currentTarget).val();
  console.log(select_val)
});

Crediti: Steven-Johnston


Ciao, posso sapere da dove currentTargetviene? nessuno dei tuoi esempi di ID / nome è correlato alla domanda. Quindi non posso relazionarmi da nessuna parte.
— mastersuse

8

Questa soluzione ti consente di dimenticare l'elemento selezionato. Utile quando non hai un ID sugli elementi selezionati.

$("#first").select2()
.on("select2:select", function (e) {
    var selected_element = $(e.currentTarget);
    var select_val = selected_element.val();
});

4

La risposta semplice è:

$('#first').select2().val()

e puoi scrivere in questo modo anche:

 $('#first').val()

3

Prova questo :

$('#input_id :selected').val(); //for getting value from selected option
$('#input_id :selected').text(); //for getting text from selected option

@RenishKhunt le risposte qui non sono solo per te (persona che fa la domanda), ma anche per altre persone che vedono questa pagina. E più soluzioni diverse vengono presentate qui, la scelta migliore ha tutti gli altri, ancora una volta: non solo tu :)
— infografnet

Sì, mi dispiace. Grazie, @infografnet e grazie mille Fahmi Imanudin per aver pubblicato una risposta :)
— Renish Khunt

2

Vedi questo violino .
Fondamentalmente, vuoi ottenere le values dei tuoi option-tags, ma cerchi sempre di ottenere il valore del tuo select-node con $("#first").val().

Quindi dobbiamo selezionare i tag di opzione e utilizzeremo i selettori di jQuerys:

$("#first option").each(function() {
    console.log($(this).val());
});

$("#first option")seleziona ogni optionelemento figlio dell'elemento con l'id first.


$ ("# primo"). val (); // restituisce 1,2,3 OR $ ("# first"). select2 ('val'); // ritorna primo, secondo, tre
— Renish Khunt

Sembra che la tua domanda sia sbagliata, quindi chiarisci esattamente cosa vuoi ottenere.
— KeyNone

quando ho usato il plugin select2, ottengo il valore usando $ ("# first"). val (). non restituisce nulla, ritorna vuoto.
— Renish Khunt

Vedi questo violino . Funziona perfettamente bene per me. (Ho aggiunto select2.js sotto le risorse esterne, anche se non posso dire perché le scatole sembrano brutte).
— KeyNone

la chiave era che hai detto che vogliamo ottenere il valore dei tag di opzione!
— Darius.V


0

Altre risposte non funzionavano per me, quindi ho sviluppato una soluzione:

Ho creato un'opzione con class = "option-item" per un facile targeting

HTML:

<select id="select-test">
<option value="5-val" id="first-id" class="option-item"> First option </option>
</select>

Quindi per ogni opzione selezionata ho aggiunto non visualizzare nessuna proprietà

CSS:

option:checked {
   display: none;
}

Ora possiamo aggiungere modifiche al nostro SelectBox per trovare la nostra opzione selezionata con la proprietà di visualizzazione nessuna tramite semplice : attributo nascosto

JQuery:

$('#select-test').change(function(){
//value 
    $('#select-test').find('.option-item:hidden').val();
//id
    $('#select-test').find('.option-item:hidden').attr('id');
//text
    $('#select-test').find('.option-item:hidden').text();
});

Violino funzionante: https://jsfiddle.net/Friiz/2dk4003j/10/


0

Soluzione:

var my_veriable = $('#your_select2_id').select2().val();
var my_last_veriable = my_veriable.toString();
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.