2012-04-19 14 views
7

Ho bisogno di ottenere il valore da una lista di selezione, ma JQuery restituisce il testo all'interno delle opzioni della selezione.JQuery che recupera il testo anziché il valore della lista di selezione

Ho il seguente codice semplice.

<select id="myselect"> 
    <option selected="selected">All</option> 
    <option value="1">One</option> 
    <option value="2">Two</option> 
</select> 

allora io uso il seguente JQuery, che ho pensato che mi avrebbe ottenere il valore

var myOption = $('#myselect').val() 

ma quando guardo myOption ricevo il testo di 'One' o 'due'?

+1

La tua domanda è un po 'di confusione. Dici di voler ottenere '1' o' 2' ma stai ottenendo 'uno' e' due' invece? Se sì, non riesco a riprodurre il tuo problema: http://jsfiddle.net/xmvFS/. Assicurati che gli elementi 'option' abbiano effettivamente un attributo' value' o forniscano una demo. Se è viceversa e vuoi ottenere il testo, è un duplicato di http://stackoverflow.com/questions/196684/jquery-get-select-option-text –

+0

È tutto il tuo codice? Funziona bene: http://jsfiddle.net/38F6F/ – Henry

+0

è che la risposta funziona per voi ??? –

risposta

9

aggiornamento: aggiungi val().

console.log($('#myselect').val()); 

// all option's value 
$('#myselect').find('option').each(function(){ 
    console.log($(this).text()); 
    console.log($(this).val()); 
}); 

// change event 
$('#myselect').change(function(){ 
    console.log($(this).find(':selected').text()); 
    console.log($(this).find(':selected').val()); 
}); 

demo: http://jsfiddle.net/yLj4k/3/

+0

OP chiesto come ottenere il valore anziché il testo – devnull69

+0

Siamo spiacenti. Aggiorna il mio codice. – GeckoTang

0

modificare

Hiya

lavorare demo qui: utilizzando il testo http://jsfiddle.net/QtjTq/3/ & & usando val qui http://jsfiddle.net/QtjTq/4/

come questo per l'accesso di testo() - var myOption = $('#myselect option:selected').text() per il valore accesso - var myOption = $('#myselect option:selected').val()

da elaborare altro:

per il valore se si desidera accedere a value= uso attributo .val();

per il testo se si vuole ottenere il testo cioè one or two quindi usare le opzioni selezionate ... option:selected con .text() api.

ulteriormente se si desidera leggere http://forum.jquery.com/topic/jquery-using-val-vs-text

Spero che questo aiuti :) applausi

var myOption = $('#myselect option:selected').text() //**or whatever suit you** 
var myOption = $('#myselect option:selected').val() 


<select id="myselect"> 
    <option value="1">One</option> 
    <option value="2">Two</option> 
</select> 
2

per ottenere il valore di testo modo più semplice è

Per selezionata l'opzione Testo:

$("#myselect option:selected").text(); 

Per il valore opzione selezionato:

$("select#myselect").val(); 
+0

@ devnull69 - controlla la risposta ho scritto sia come ottenere valore sia come ottenere il testo dell'opzione selezionata ... –

+5

la domanda sembra essere "perché' val() 'restituisce il testo", non sono sicuro di come questa è una risposta. – Henry

0

Demo

$("#myselect").change(function() { 
    alert(this.options[this.selectedIndex].value); 
}); 
Problemi correlati