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.