jBox는 좋은 대화 상자 구성 요소입니다.
ASP.NET Form에서 jBox를 사용하는 경우 버튼으로 등록된 클라이언트 클릭 이벤트에 대화 상자가 팝업되지 않는 현상을 확인할 수 있습니다.
페이지가 순식간에 제출되어 대화 상자가 깜박이거나 전혀 표시되지 않을 수도 있습니다. 모달 대화 상자가 실패하게 됩니다.
우선, 버튼에는 기본 처리가 적용됩니다. 일반 ASP.NET 버튼의 경우 양식이 제출됩니다. 양식을 제출하면 페이지가 새로 고쳐집니다. 따라서 양식을 제출하지 않으려면 다음 코드를 사용하여 버튼의 기본 동작을 방지해야 합니다.
function stopDefault( e ) {
// 기본 브라우저 작업 방지(W3C)
if ( e && e.preventDefault )
e.preventDefault();
else
// IE에서 브라우저 작업을 중지하는 단축키
window.event.returnValue = false;
return false;
}
두 번째로, 대화 상자를 닫을 때 양식을 제출할 수 있기를 바랍니다. 스크립트를 통해 달성됩니다. 이는 양식 객체의 submit() 메소드를 호출하는 것입니다.
구현 시 다음과 같이 얻을 수 있는 컨트롤의 클라이언트 식별자도 찾아야 합니다.
var btnSaveId = "<%= this.btnSave.ClientID %>";
var form1Id = " <%= this.form1.ClientID %>";
버튼 클릭에 대한 클라이언트측 처리는 다음과 같습니다
// 버튼 클릭 이벤트 처리 등록
$("#" btnSaveId).click(function ( e ) {
//대화상자를 닫을 때 양식을 제출하도록 설정
var options = {
closed: function () {
alert("submit");
// 제출해야 하는 양식 찾기
$("#" form1Id ).submit()
}
}; >// jBox 대화 상자 표시
var info = 'jQuery jBox
< ;br />버전: v2.0
날짜: 2011-7-24
' ;
info = '공식 웹사이트:
http://kudystudio.com/jbox'; >$.jBox(info, options);
// 기본 이벤트 처리 방지
stopDefault(e)
}); , 이벤트 처리 방법에서 false를 반환하면 비슷한 기능을 수행할 수 있습니다.
그러나 이 두 가지 방법에는 차이가 있습니다. false를 반환하면 이벤트가 발생하는 것을 방지할 뿐만 아니라 이벤트 자체도 방지할 수 있습니다.
stopDefault는 기본 이벤트 자체만 차단할 뿐 이벤트 버블링을 방지하지는 않습니다.
다음 메서드를 호출해야 이벤트 버블링을 방지할 수도 있습니다.
코드 복사
e.stopPropagation( );
else
// 그렇지 않으면 Internet Explorer를 사용해야 합니다
// 이벤트 버블링을 취소하는 방법
window.event.cancelBubble =
}