2012-05-11 18 views
76

de todos modos podría desencadenar un evento de cambio en el cuadro de selección al cargar la página y seleccionar una opción en particular.Evento de cambio de desencadenante <select> usando jquery

También la función ejecutada al agregar el activador después de vincular la función al evento.

yo estaba tratando de salida algo así como this

<select class="check"> 
<option value="one">one</option> 
<option value="two">two</option> 
</select> 

$(function(){ 
    $('.check').trigger('change'); //This event will fire the change event. 
    $('.check').change(function(){ 
     var data= $(this).val(); 
     alert(data);    
    }); 
}); 

http://jsfiddle.net/v7QWd/1/

+0

hacer que desea establecer una opción en particular en la carga? o quieres activar tu evento de cambio? – ManseUK

+0

¿Podría ampliar la solución final? ¿Está tratando de tener una opción forzada cuando se carga la página, o selecciona una opción diferente cuando se selecciona algo específico? –

+0

hola, gracias por sus comentarios, pude resolver el problema y lo he documentado. – kishanio

Respuesta

154

Uso val() para cambiar al valor (no el texto) y trigger() para disparar manualmente el evento.

El controlador de eventos de cambio debe declararse antes del desencadenador.

Here's a sample

$('.check').change(function(){ 
    var data= $(this).val(); 
    alert(data);    
}); 

$('.check') 
    .val('two') 
    .trigger('change'); 
+0

También después de cambiar la opción, quería ejecutar la función de evento de cambio. w.r.t [this] (http://jsfiddle.net/v7QWd/4/). el cuadro de alerta debería ejecutarse. – kishanio

+0

@KishanThobhani debe llamar a eso * después de * agregar el controlador. ver la muestra – Joseph

+0

Vaya, lo siento mal. gracias por la solución sin embargo. – kishanio

17

Para seleccionar una opción, utilice .val('value-of-the-option') en el elemento de selección. Para activar el elemento de cambio, use .change() o .trigger('change').

Los problemas en su código son la coma en lugar del punto en $('.check'),trigger('change'); y el hecho de que lo llame antes de vincular el controlador de eventos.

5
$('#edit_user_details').find('select').trigger('change'); 

Sería cambiar el elemento desplegable etiqueta seleccione html con id="edit_user_details".

0

enlaces damos en valor de la etiqueta de opción

<select size="1" name="links" onchange="window.location.href=this.value;"> 
    <option value="http://www.google.com">Google</option> 
    <option value="http://www.yahoo.com">Yahoo</option> 
</select> 
0

Si quieres hacer algunas comprobaciones a continuación, utilizar esta forma

<select size="1" name="links" onchange="functionToTriggerClick(this.value)"> 
    <option value="">Select a Search Engine</option>   
    <option value="http://www.google.com">Google</option> 
    <option value="http://www.yahoo.com">Yahoo</option> 
</select> 

<script> 

    function functionToTriggerClick(link) { 

    if(link != ''){ 
     window.location.href=link; 
     } 
    } 

</script> 
Cuestiones relacionadas