2014-06-25 95 views
0

首先,對不起我的英文不好。 我已閱讀所有相同主題的文章沒有成功,因爲它似乎我寫了相同的代碼。jQuery-ui對話框不會打開兩次

問題:

第一頁加載(好)時出現對話框。 我關閉了這個對話框,切換標籤爲'?'並返回'accueil'選項卡(索引0),其中必須出現用於選擇數據文件的對話框。 疊加層填充窗口,但不顯示對話框。

這裏是我的代碼:

 $(function() { 

      var $dialog = $("#dialog") 
       .dialog({ 
        autoOpen: false, 
        modal: true, 
        resizable: false, 
        draggable: false, 
        close: function(event,ui) { 
         form[ 0 ].reset(); 
        } 
      }); 

      $dialog.dialog('open'); 

      $(window).resize(function() { 
       $('.headet').height($(window).height()-55); 
       $('.subet').height($(window).height()-95); 
      }); 

      function ajaxid(tabid){ 
       $(tabid).empty(); 
       $(".ui-jqgrid").remove(); 
       var url='pages/'+tabid.substr(1)+'.html'; 
       $.ajax({ 
        url:url, 
        type:'GET', 
        dataType:'html', 
        success:function(donnees){ 
         $(tabid).html(donnees); 
         $(tabid).scrollTop(0); 
        } 
       }); 
      } 

      var $tabs=$('#tabs'); 
      var $subtabs=$('.subtabs'); 

      $tabs.tabs(); 
      $tabs.removeClass('ui-widget-content'); 
      //******************* 
      // CLIC APPLICATION 
      //******************* 
      var pidtab, sidtab=0; 
      $tabs 
      .tabs({ 
       disabled: [1,2,3,4,5], 
       activate:function(event,ui){ 
        var index=$tabs.tabs("option", "active"); 
        pidtab=$tabs.find(" ul>li a").eq(index).attr('href').substr(4); 
        $("#sub"+pidtab).tabs('option','active',0); 
        var tabid='#sub'+pidtab+'1'; 
        sidtab=tabid.substr(1); 
        if($(tabid).hasClass('p10')){ 
         ajaxid(tabid); 
        } 
        var tabOpts={}; 
        switch(index){ 
         case 0: 
          $dialog.dialog('open'); 
          break; 
         case 6: 
          tabOpts = { disabled: [2,3,4]}; 
          break; 
         default:     
        } 
        $subtabs.tabs(tabOpts); 
       } 
      }); 

      $subtabs.tabs(); 
      $subtabs.removeClass('ui-widget-content'); 
      //************** 
      // CLIC MODULE 
      //************** 
      $subtabs.tabs({ 
       activate:function(event,ui){ 
        sidtab=ui.newTab.attr("aria-controls"); 
        if($('#'+sidtab).hasClass('p10')){ 
         ajaxid("#"+sidtab); 
        } 
       } 
      }); 
      $('ul.ui-tabs-nav').removeClass('ui-corner-all').addClass('ui-corner-top'); 
     }); 
    </script> 

,並與對話框HTML部分:

<body> 
    <div id="dialog" title="Ouverture"> 
     <form> 
      <fieldset class="ui-helper-reset"> 
       <label for="data_file">Fichier</label> 
       <input type="text" name="data_file" id="data_file" value="" class="ui-widget-content ui-corner-all"> 
      </fieldset> 
     </form> 
    </div> 

也許這是打破程序的小東西,但我找不到在哪裏,以及爲什麼有時候是這樣的。由於我需要選擇數據文件來繼續,所以我希望有人會有一些寶貴的時間給我一些幫助。 非常感謝,爲此。 祝您有愉快的一天。

回答

1

問題是你沒有定義()上dialog.close使用表單對象

我的解決辦法:

close: function(event,ui) { 
      $(this).find('form')[0].reset(); 
     } 

測試:

http://jsfiddle.net/tTMcc/1/

+0

非常感謝亞雷克,這是運行良好!正如我所說,這是一件小事,一個新手的錯誤。非常感謝 – JiheL