Comment sélectionner goutte jQuery vers le bas val () et déclencher l'événement?
-
24-10-2019 - |
Question
J'ai un jQuery plug-in inscrit sur une liste déroulante comme ceci:
$('#country').linkToStates('#province');
Je suis sélectionner manuellement le menu déroulant comme ceci:
$('#country').val('United States');
Mais l'événement onchange ne déclenche pas .linkToStates () qui a été enregistrée avant. Il semble donc que val () ne change la baisse en position basse, mais ne change pas vraiment l'événement onchange. Quelqu'un peut-il aider?
BTW, voici le code du enregistré si elle aide:
$.fn.extend({
linkToStates: function(state_select_id) {
$(this).change(function() {
var country = $(this).attr('value');
$(state_select_id).removeOption(/.*/);
switch (country) {
case 'Canada':
$(state_select_id).addOption(canadian_provinces, false);
break;
case 'United States':
$(state_select_id).addOption(us_states, false);
break;
default:
$(state_select_id).addOption({ '' : 'Please select a Country'}, false);
break;
}
});
}
});
La solution
Essayez ceci:
$('#country').val('United States').trigger('change');
ou même
$('#country').val('United States').change();
Vous pouvez lire plus sur .trigger()
et .change()
ici
Autres conseils
Vous pouvez simplement mettre votre code onChanged dans une fonction séparée, puis l'appeler après avoir modifié la valeur.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow