입력 요소가 팝업 창에서 JavaScript에 의해 변경되면 "onchange"이벤트를 올리십시오.

StackOverflow https://stackoverflow.com/questions/855264

문제

양식 요소와 팝업 창이있는 웹 페이지가 있습니다 (Window.open으로 열).

둘 다 jQuery를 사용할 수 있습니다.

팝업 창에는 오프너 창의 양식 요소를 변경할 수있는 JavaScript가 있습니다. 그것은 완벽하게 작동합니다 ...

$(opener.document.formelement).val(vals[0]);

그러나 그렇게함으로써 Onchange 이벤트는 해고되지 않습니다. 그러나 다른 페이지 요소에는 필요합니다. 그래서 나는 Onchange 이벤트를 직접 해고하려고 노력했습니다.

$(opener.document.formelement).change();

그러나 그것은 아무것도하지 않습니다.

힌트가 있습니까? 다른 페이지 요소의 아키텍처로 인해 Onchange 이벤트가 시작되어야합니다.

이 질문은 비슷합니다 프로그래밍 방식으로 텍스트 상자 값을 변경하여 JavaScript onchange 이벤트를 호출하십시오, 그러나 그 질문의 제안 된 솔루션은 나에게 효과가없는 것 같습니다. 어쩌면 그것은 팝업 때문일 것입니다.

도움이 되었습니까?

해결책

아마도 당신을 아프게하는 교차 창은 아마도 당신이 대신 전화하는 오프너 내부의 기능을 만들어보십시오. 도움이 될 수 있습니까?

오프너 :

window.changeMyElement = function(value) {
  $(formelement).val(value).change();
}

팝업에서 :

opener.changeMyElement(value);

다른 팁

이 라인은 작동해야합니다.

$(opener.document.formelement).change();

jQuery에 따르면 선적 서류 비치 이 라인은 각 일치하는 요소의 변경 이벤트를 트리거합니다.

그것이 당신을 위해 작동하지 않는다면, 당신의 코드 어딘가에 문제가 있습니다. 양식 요소를 손으로 변경하여 Onchange 이벤트를 트리거 할 수 있습니까?

당신은 또한 할 수 있습니다 :

window.opener.document.getElementById('controlname').fireEvent('onchange');

또는 당신의 맥락에서 :

$(opener.document.formelement).fireEvent('onchange');
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top