2011-12-27 2 views
1

다른 사람의 코드에서이 버그를 수정하려고합니다. 이 라인이 호출되는의 .js 파일에버튼 서버 Firefox에서 OnClick 이벤트가 실행되지 않음

<asp:Button runat="server" ID="doUpload" OnClick="DoUpload_Click" OnClientClick="alert('OnClientClick');"/> 

:

$('#doUpload', this.getIFrameDocument()).click(); 

이 IE와 크롬에 완벽하게 작동 기본적으로 iframe이 안쪽이 버튼이있다. 서버 이벤트 핸들러 "DoUpload_Click"은 Firefox를 제외한 모든 문제없이 실행됩니다. firefox에서는 OnClientClick이 호출되지만 서버 측 이벤트 핸들러는 호출되지 않습니다. 나는 그것을 보이지 않는 iframe까지 추적했다 (display : none).

이제 iframe을 보이지 않게 유지하면서 서버 핸들러를 어떻게 실행할 수 있습니까? 아이디어는 iframe을 사용자의 브라우저 크기를 벗어난 좌표에 배치하는 것이지만 다른 아이디어는 환영합니다!

+1

왜 자바 스크립트 이벤트를 사용하여 서버 이벤트를 트리거하고 있습니까? OnClick 이벤트는 자신의 포스트 백을 트리거해야하고 doUpload 메소드를 호출해야합니다. – rie819

+0

@ rie819 : 서버 측 기능을 실행하기 전에 다른 입력 상태의 유효성을 검사하는 데 사용할 수 있습니다. – nerdcoder

+0

예 ... 페이지를 다시로드하지 않고 특정 종류의 파일을 업로드 할 수있는 페이지의 일부입니다. 그것은 간접적입니다, 나는 동의합니다 ... 그러나 그것은 효과를 얻습니다. – CBC22

답변

0

시도 js 클라이언트 측 클릭 이벤트 핸들러에 Form.submit trigger를 추가하십시오.

1

this blog entry 일 수 있습니다. 하지만 먼저 "return true;"을 사용하려고하면 javascript 명령이 호출됩니다. 클라이언트 측 메서드가 false을 반환하면 브라우저 이벤트 처리기가 서버 측 실행을 억제 할 수 있습니다. 반환 값이 전혀 없으면 다른 방식으로 동작 할 수 있습니다 (예 : 기본값은 false).

두 가지 모두 테스트하지 않았습니다.

관련 문제