>  기사  >  웹 프론트엔드  >  jBox 대화 상자를 사용하여 제출할 때 팝업이 표시되지 않는 문제 해결_javascript 기술

jBox 대화 상자를 사용하여 제출할 때 팝업이 표시되지 않는 문제 해결_javascript 기술

WBOY
WBOY원래의
2016-05-16 17:48:451138검색

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는 기본 이벤트 자체만 차단할 뿐 이벤트 버블링을 방지하지는 않습니다.
다음 메서드를 호출해야 이벤트 버블링을 방지할 수도 있습니다.




코드 복사

코드는 다음과 같습니다. function stopBubble(e) { // 이벤트 객체가 제공되면 이는 IE 브라우저가 아닌 것입니다 if (e && e.stopPropagation) // 따라서 W3C stopPropagation() 메소드를 지원합니다
e.stopPropagation( );
else
// 그렇지 않으면 Internet Explorer를 사용해야 합니다
// 이벤트 버블링을 취소하는 방법
window.event.cancelBubble =
}

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.