나는 잘 작동하는 변경 이벤트가 있지만 재발해야합니다.
따라서 클래스 선택기를 기반으로 다른 드롭 다운을 “변경”하는 변경에 대해 트리거되는 기능이 있습니다 ( “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);
}
}
}
지금까지 제안은 효과가있는 것처럼 보이지만 변경 이벤트가 아약스 게시물을 트리거하면 이제 실패합니다. 나는 그것을 가지고 놀려고하지만 그것은 내가 느끼는 또 다른 질문에 대한 것입니다.
답변
사용 트리거 () 메소드를
$(selector).trigger("change");
답변
나를 $('#element').val('...').change()
위해 최선의 방법입니다.
답변
change () 메소드 의 매개 변수없는 형식은 change
이벤트를 트리거합니다 . 다음과 같이 쓸 수 있습니다.
$(document).ready(function() {
$("#yourInitialElementID").change(function() {
// Do something here...
$(".yourDropDownClass").change();
});
});
답변
답변
그것을 사용하십시오 :
$(selector).trigger("change");
또는
$('#id').trigger("click");
또는
$('.class').trigger(event);
트리거는 자바 스크립트가 지원하는 모든 이벤트 일 수 있습니다. 모든 사용자가 이해하기 쉽기를 바랍니다.