2017-11-30 3 views
0

MaterializeCSS로 어떻게 처리합니까?데이터가 변경되면 MaterializeCSS 모달이 닫히지 않도록하십시오.

사용자가 모달에서 무언가를 변경하고 닫으려고하는 경우 (외부를 클릭하면 Esc 버튼 또는 모달의 닫기 버튼) 해당 조치를 확인하고 싶습니다.

모달 생성자의 complete 옵션은 모달을 닫은 후에 만 ​​실행됩니다.

var form_changed = false; 

$('.modal').find('input, textarea, checkbox').on('change', function() { 
    form_changed = true; 
}); 

답변

0

아웃 - 오브 - 박스 가능하지 않는 것 : 내가 모달 데이터를 변경, 사용자를 잡을 방법이있다

.

source code 엿 후, 나는이 함께했다 :

function addCloseHandler($modal, handler) { 
    var modal = $modal[0].M_Modal; 
    modal._close = modal.close; 
    modal.close = function() { handler(function() { modal._close(); }); }; 
} 

사용법 :

// $('.modal').modal(); 

addCloseHandler($('.modal'), function (close) { 
    form_changed ? confirm('Confirm?') && close() : close(); 
}); 
+0

'('$ 모달 [0] .M_Modal'에'modal'를 할당 할 수 없습니다 모달'값은'undefined'입니다) – 5kr1p7

+0

모달을'$ ('. modal'). modal();로 초기화해야합니다. – aaron

+0

감사합니다. 핸들러 앞에 모달 초기화가 추가되었습니다. 이제 '정의되지 않음'이 없습니다. 하지만 여전히 작동하지 않습니다 (모달을 닫은 후 확인 창이 표시되지 않음), addCLoseHandler (간단한'console.log ('[!] Breakpoint');')에 debug 명령이 추가되었습니다. 모달 창을 닫으면 Chrome 콘솔에 표시되지 않습니다. – 5kr1p7

관련 문제