J'ai un événement de changement qui fonctionne bien, mais je dois le faire revenir.
J'ai donc une fonction qui se déclenche sur le changement qui va "changer" d'autres listes déroulantes basées sur un sélecteur de classe (notez "drop downS", il pourrait y en avoir plus d'un). Ce changement de proxy ne déclenche pas la fonction et échoue donc. Comment puis-je le faire fonctionner?
Code
$(document).ready(function () {
var activeDropBox = null;
$("select.drop-box").change(function () {
var questionId = $(this).attr("questionId");
var selectedAnswer = $(this).val();
activeDropBox = this;
alert(this.questionId);
$.ajax(
{
type: "POST",
url: answerChangedActionUrl,
data: { questionId: questionId, selectedValue: selectedAnswer },
success: function (data) {
SetElementVisibility(data.ShowElement, questionId);
}, error: function (XMLHttpRequest, textStatus, errorThrown) {
alert('XMLHttpRequest:' + XMLHttpRequest.responseText);
alert('textStatus:' + textStatus);
alert('errorThrown:' + errorThrown);
}
});
});
function SetElementVisibility(visible, questionId) {
// I would like each child to then trigger the change event...
$(".childOf" + questionId)[visible ? 'show' : 'hide']('slow');
// Suggested code
//$(".childOf" + questionId + " select").trigger("change");
if (!visible) {
$(".childOf" + questionId + " select").attr('selectedIndex', 0);
}
}
}
Les suggestions jusqu'à présent semblent fonctionner, mais comme l'événement de changement déclenche un post ajax, il semble maintenant échouer ici. Je vais jouer avec mais c'est quelque chose pour une autre question que je ressens.
Réponses:
Utilisez la méthode trigger ()
la source
change()
? Ou est-ce juste une préférence?pour moi,
$('#element').val('...').change()
c'est le meilleur moyen.la source
La forme sans paramètre de la méthode change () déclenche un
change
événement. Vous pouvez écrire quelque chose comme:la source
.changement()
.trigger ("modifier")
Alternative plus longue et plus lente , meilleure pour l'abstraction.
.trigger ("modifier")
la source
Utiliser ça :
OU
OU
Le déclencheur peut être n'importe quel événement pris en charge par javascript. J'espère qu'il est facile à comprendre pour vous tous.
la source