jQuery ottiene il valore di select onChange

Avevo l’impressione che potessi ottenere il valore di un input select facendo questo $(this).val(); e applicare il parametro onchange al campo di selezione.

Sembrerebbe che funzioni solo se faccio riferimento all’ID.

Come lo faccio usando questo.

Prova questo-

 $('select').on('change', function() { alert( this.value ); }); 
   

Avevo l’impressione che potessi ottenere il valore di un input select facendo questo $ (this) .val ();

Questo funziona se ti iscrivi discretamente (che è l’approccio consigliato):

 $('#id_of_field').change(function() { // $(this).val() will work here }); 

se si utilizza onselect e si mescola il markup con lo script, è necessario passare un riferimento all’elemento corrente:

 onselect="foo(this);" 

e poi:

 function foo(element) { // $(element).val() will give you what you are looking for } 

Questo è aiutato per me.

Per selezionare:

 $('select_tags').on('change', function() { alert( $(this).find(":selected").val() ); }); 

Per radio / casella di controllo:

 $('radio_tags').on('change', function() { alert( $(this).find(":checked").val() ); }); 

Prova il metodo di delega dell’evento, questo funziona in quasi tutti i casi.

 $(document.body).on('change',"#selectID",function (e) { //doStuff var optVal= $("#selectID option:selected").val(); }); 

Puoi provare questo (usando jQuery ) –

 $('select').on('change', function() { alert( this.value ); }); 
   

Questo è ciò che ha funzionato per me. Ho provato tutto il resto senza fortuna:

   Example: Change event on a select        

Tratto da Mozilla

Per tutti seleziona, invoca questa funzione.

 $('select').on('change', function() { alert( this.value ); }); 

Per una sola scelta:

 $('#select_id') 

Cerca il sito jQuery

HTML:

 
Trigger the handler

Javascript:

 $( ".target" ).change(function() { alert( "Handler for .change() called." ); }); 

L’esempio di jQuery:

Per aggiungere un test di validità a tutti gli elementi di input del testo:

 $( "input[type='text']" ).change(function() { // Check input( $( this ).val() ) for validity here }); 
 $('select_id').on('change', function() { alert((this).value()); }); 
   

Nota che se questi non funzionano, potrebbe essere perché il DOM non è stato caricato e il tuo elemento non è stato ancora trovato.

Per risolvere il problema, metti lo script alla fine del corpo o usa il documento pronto

 $.ready(function() { $("select").on('change', function(ret) { console.log(ret.target.value) } }) 
 jQuery(document).ready(function(){ jQuery("#id").change(function() { var value = jQuery(this).children(":selected").attr("value"); alert(value); }); }) 

La funzione Arrow ha un ambito diverso dalla funzione, questo this.value non è definito per una funzione di freccia. Per risolvere l’uso

 $('select').on('change',(event) => { alert( event.target.value ); });