173 votes

Déclencher un événement de changement <select> à l'aide de jquery

est ce que de toute façon je pourrais déclencher un événement de changement sur la boîte de sélection lors du chargement de la page et sélectionner une option particulière.

Également la fonction exécutée en ajoutant le déclencheur après avoir lié la fonction à l'événement.

J'essayais de sortir quelque chose comme ça

<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/

339voto

Joseph the Dreamer Points 43727

Utilisez val() pour changer la valeur (pas le texte) et trigger() pour lancer manuellement l'événement.

Le gestionnaire d'événements de changement doit être déclaré avant le déclenchement.

Voici un échantillon

.

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

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

34voto

ThiefMaster Points 135805

Pour sélectionner une option, utilisez .val('value-of-the-option') sur l'élément sélectionné. Pour déclencher l'élément de changement, utilisez .change() ou .trigger('change').

Les problèmes dans votre code sont la virgule au lieu du point dans $('.check'),trigger('change'); et le fait que vous l'appelez avant de lier le gestionnaire d'événements.

15voto

Sohail xIN3N Points 421
$('#edit_user_details').find('select').trigger('change');

Cela changerait l'élément de liste déroulante de balise html avec id="edit_user_details".

15voto

Mohamed23gharbi Points 1406

Une autre solution de travail pour ceux qui ont été bloqués avec jQuery trigger handler, que le feu dosent sur les événements natifs sera comme ci-dessous (100% de travail) :

var sortBySelect = document.querySelector("select.your-class"); 
sortBySelect.value = "new value"; 
sortBySelect.dispatchEvent(new Event("change"));

1voto

Afraz Ahmad Points 1247

Donnez des liens dans la valeur de l'option tag

<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>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X