У меня есть событие изменения, которое работает нормально, но мне нужно, чтобы оно повторилось.
Так что у меня есть функция, которая срабатывает при изменении, которая будет «изменять» другие выпадающие списки на основе селектора класса (обратите внимание, «drop downS», их может быть больше одного). Это изменение прокси не запускает функцию и поэтому завершается ошибкой. Как я могу заставить его работать?
Код
$(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);
}
}
}
Похоже, что предложения пока работают, но поскольку событие change вызывает сообщение ajax, теперь оно, похоже, терпит неудачу. Я собираюсь поиграть с этим, но это другой вопрос, который я чувствую.