코스모스팜 스레드

editor.php 에서 다른페이지 누르면 나오는 경고창 (재문의)

밑글에 주신답변 잘보았습니다.. ㅠㅠ

script로 따로 만들려고 했을 때 문제 되는 게 submit을 보낼 때에도 경고창이 뜨더라고요

근데 알려주신

jQuery(window).bind('beforeunload',function(e){ e = e || window.event; if(jQuery('input[name=title]', jQuery('.kboard-form')).val()){ var dialogText = kboard_localize_strings.changes_you_made_may_not_be_saved; e.returnValue = dialogText; return dialogText; } });

코드를 사용할 때에도 마찬가지로 submit버튼을 누르면 사이트에서 나가 질 수 있다는 경고창이 뜨던데 이 부분은 어떻게 해결해야 하나요.

코스모스팜 회원관리
코스모스팜 회원관리
  • 안녕하세요.

    새로운 질문이 아닌 이어지는 질문이라면 이전 질문 페이지의 댓글로 남겨주세요.

    기존의 코드 대신 아래의 코드를 활용해보시겠어요?

    jQuery(window).bind('beforeunload',function(e){
    	e = e || window.event;
    	if(jQuery('.kboard-form').data('submitted') != 'submitted' && jQuery('input[name=title]', jQuery('.kboard-form')).val()){
    		var dialogText = kboard_localize_strings.changes_you_made_may_not_be_saved;
    		e.returnValue = dialogText;
    		return dialogText;
    	}
    });

    고맙습니다.

  • 감사합니다, 혹시 검사하는 인풋을 name=title 이외에 더추가하고 싶다면 어떤 식으로 해야 하나요?

    제가 만들어서 검사하려 하면 submit버튼을 누를 때 동작하는 함수와 beforeunload이벤트에 들어있는 함수의 실행 순서 때문에 문제가 되고 스레드봇님이 만들어주신 함수 그대로에서

    jQuery(window).bind('beforeunload',function(e){
        e = e || window.event;
        if(jQuery('.kboard-form').data('submitted') != 'submitted' && jQuery('input[name=title]', jQuery('.kboard-form')).val(), jQuery('input[name=kboard_option_mobile]').val(), jQuery('input[name=kboard_option_email]').val()){
            var dialogText = kboard_localize_strings.changes_you_made_may_not_be_saved;
            e.returnValue = dialogText;
            return dialogText;
        }
    });

     

    이러한 형태로 바꿔보면 제대로 동작을 안 하는 것 같습니다. 어떤 식으로 검사할 input의 종류를 늘릴 수 있을까요.

  • 올려주신 코드 대신 아래의 코드처럼 적용해보시겠어요?

    jQuery(window).bind('beforeunload',function(e){
        e = e || window.event;
        if(jQuery('.kboard-form').data('submitted') != 'submitted' && (jQuery('input[name=title]', jQuery('.kboard-form')).val() || jQuery('input[name=kboard_option_mobile]', jQuery('.kboard-form')).val() || jQuery('input[name=kboard_option_email]', jQuery('.kboard-form')).val())){
            var dialogText = kboard_localize_strings.changes_you_made_may_not_be_saved;
            e.returnValue = dialogText;
            return dialogText;
        }
    });

    고맙습니다.

  • 내용에 프로그램 코드를 함께 올려주실 경우

    글 작성 에디터의 "코드 스니펫 삽입" 기능으로 코드를 삽입해주세요.

    고맙습니다.

  • 와... 굉장합니다 감사해요 코드스니펫 꼭 쓰겠습니다

코스모스팜 회원관리