jQuery-ui对话框不会打开两次

时间:2014-06-25 07:31:38

标签: jquery jquery-ui-dialog

首先,抱歉我的英语不好。 我已阅读所有相同主题的帖子但没有成功,因为我似乎写了相同的代码。

问题:

加载第一页时出现对话框(正常)。 我关闭此对话框,将标签切换到'?'并重新回到' 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 个答案:

答案 0 :(得分:1)

问题是你没有定义dialog.close()

上使用的表单对象

我的解决方案:

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

测试:

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