Avant de cliquer sur le bouton de réinitialisation, je choisis "Société" dans Choisi (liste déroulante). L'événement se produit normalement après avoir cliqué sur réinitialiser. Je choisis à nouveau "Société" mais l'événement change
dans la liste déroulante ne se produit pas.
Quelqu'un pourrait-il me dire comment déclencher l'événement de changement pour la liste déroulante après avoir cliqué sur le bouton de réinitialisation, puis sur le même élément?
Le code que j'ai jusqu'à présent:
$("#mainMenu").change(function(e){
e.preventDefault();
loadFirstManu(true);
});
Code pour le bouton de réinitialisation:
$("#btn_reset").click(function() {
CKEDITOR.instances.ckeditor.setData('');
$('.mchosen').each(function() {
$(this).val('').trigger('liszt:updated');
$('#submenu').attr('disabled', 'disabled').html('');
$('#secondsubmenu').attr('disabled', 'disabled').html('');
$('#s-menu').removeClass('required').html('');
$('#secondsubmenu').removeClass('validate[required]');
$('#tabmenu').attr('disabled', 'disabled').html('');
$('#tab').removeClass('required').html('');
});
});
Voici ce que j'ai compris:
$('#my-select').val(5).trigger("liszt:updated")
liszt:updated
ne fonctionne plus dans la nouvelle version de choisi à la place, utilisez ci-dessous comme Alexandru Cojan's réponse suggérant
trigger("chosen:updated");
pour la nouvelle version de l'option choisie, l'événement est "choisi: mis à jour"
$(selector).trigger("chosen:updated")
Si j'ai juste besoin de rafraîchir la valeur dans le choix choisi - .trigger('chosen:updated')
suffit. Mais si j'ai un gestionnaire de changement et que je veux qu'il soit appelé - je dois faire .trigger('chosen:updated').change()
Je ne sais pas si c'est votre cas ou non, mais votre code ci-dessus devrait fonctionner,
$("#mainMenu").change(function(e){
e.preventDefault();
loadFirstManu(true);
});
mais veuillez noter que l'événement "change" se produit sur la plupart des navigateurs lorsque vous flo l'entrée de sélection
Ainsi, lorsque vous cliquez sur reset, juste avant d'exécuter l'action de réinitialisation, onchange est déclenché.
Maintenant, essayez de cliquer en dehors de l'entrée de sélection après avoir modifié la sélection et voyez si cela fonctionne toujours ou non
Vous devriez peut-être essayer d'utiliser .on, car votre $ ('# mainMenu') peut avoir changé quelque part (impossible à dire sans exemple). Essayez de faire ceci:
$("body").on('change','#mainMenu',function(){
...
});
ou n'importe quel sélecteur de parents au lieu d'un corps "lourd"
Si je ne me trompe pas, vous voulez déclencher le changement d'événement après avoir cliqué sur le bouton de réinitialisation. vous pouvez le faire en ajoutant simplement une ligne à votre code // code
$("#btn_reset").click(function(){
// your code here
$("#mainMenu").trigger('change');
//you can write this as per your requirements ie. at start or end.
});