2012-12-06 2 views
0

버튼을 클릭하면 열리는 모달 대화 상자가 열리고 .xhtml 페이지가로드됩니다.jquery 모달 대화 상자가 xhtml 페이지를로드하지만 닫히지 않습니다.

이 XHTML 페이지 안에는 부모 창 (대화 상자가 초기화되는 곳)으로 일부 데이터를 전달하기위한 버튼이 있습니다. 대화 상자를 닫으려고해도 닫히지 않습니다 !!

첫 페이지 :

<script type="text/javascript">       
    var selected_row_data_json; 

    window.lang = new jquery_lang_js(); 

    $().ready(function() { 
     $.ajaxSetup ({ 
      // Disable caching of AJAX responses 
      cache: false 
     }); 
     createDataListDialog();     
    });  

    function setSelectedRowJsonData(row_data_) 
    { 
     selected_row_data_json = row_data_;       
    }   

    function setFormSelectedValues() 
    { 
     $('#dataListDialog').dialog('close'); 
    } 

    function createDataListDialog() 
    { 
     $("#dataListDialog").dialog(
     {     
      autoOpen: false,      
      modal: true,      
      resizable: true, 
      open: function (event, ui) { 
      /* <![CDATA[ */      
       $('#dataListDialog').css('overflow', 'hidden'); 

       $('body').css('overflow','hidden'); 
       $(this).load("data_list.xhtml");      
      /* ]]> */ 
      }, 
      height: 400, 
      width: 550, 
      close: function (event, ui) {       
       $(this).dialog('destroy'); 
       createDataListDialog();       
      }, 
      create: function(event, ui) 
      {             
       $(this).parents(".ui-dialog").css("padding", 0);       
       $(this).parents(".ui-dialog:first") 
        .find(".ui-dialog-content").css("padding", 0); 
      } 
     });  
    } 
</script> 

<f:view> 
    <h:outputLabel value="Code:" lang="en" onclick="openDialog('dataListDialog');return false;" /> 

    <div id="dataListDialog" lang="en" title="Users" dir="#{user.dir}">     
    </div> 
</f:view> 

data_list.xhtml 페이지 : 잘못된

<script type="text/javascript"> 
    function test() 
    { 
     window.parent.setSelectedRowJsonData(selected_row_data_json); 
     window.parent.setFormSelectedValues(); 
    } 
</script> 

<h:form id="dataListForm" "> 
    <input type="button" onclick="test()" value="TEST">/input> 
</h:form> 

내가 뭐하는 거지 일이 내 코드? 무언가를 놓침? 로드 된 페이지에서 대화 상자가 닫히지 않는 이유는 무엇입니까?

UPDATE : 로드 페이지는 html 페이지 인 경우 다음 좋은 작품 - 대화 상자가 종료됩니다. 문제는 페이지가 xhtml 페이지 일 때입니다. 어떻게 해결할 수 있습니까?

도움이 될 것입니다! 로드가 성공적으로 완료된 후

+1

close 이벤트에서'createDataListDialog()'를 호출하는 것처럼 보입니다. 닫을 때마다 대화 상자를 다시 만드는 것처럼 보입니다. –

답변

0

이 일을 쉬운 방법은 test() 기능을 발사 할 것 - 즉, 바인드 complete 이벤트 :

$(this).load("data_list.xhtml", 
    complete: function(response, status, xhr) { 
     window.parent.setSelectedRowJsonData(selected_row_data_json); 
     window.parent.setFormSelectedValues(); 
    }); 

보너스 : 서버 오류를 처리하는 몇 가지 조건문을 추가 status 개체를 사용합니다.

+0

내 질문을 업데이트했습니다. – user590586

관련 문제