Привет, я использую диалоговое окно jquery, и когда я выбираю запись из таблицы, оно вызывает диалоговое окно, затем, когда я его закрываю и выбираю другую запись, оно открывает старый диалог с новым диалогом... в чем проблема

$(document).ready(function () {
    $("#btnenterpat").click(function () {
        $("#enter_payment").dialog('open');
    });
    $("#enter_payment").dialog({
        autoOpen: false,
        resizable: false,
        modal: true,
        width: 400,
        height: 300,
        buttons: {
            Cancel: function () {
                $(this).dialog('close');
            },
            ok: function () {
                retur_dialog = 'ok';
                $(this).dialog('close');
            },
        },
        beforeClose: function () {
            if (retur_dialog == 'ok') {
                $.ajax({
                    url: 'ssssssss.php',
                    data: {
                        pm1: $("#pm1").val(),
                        pm2: $("#pm2").val(),
                        pm3: $("#pm3").val(),
                        pm4: $("#pm4").val(),
                        pm5: $("#pm5").val(),
                        pm6: $("#pm6").val(),
                        pm7: $("#pm7").val(),
                    },

                });
            }
        }
    });
});

РЕДАКТИРОВАТЬ:

Первая страница:

<?php
    include ("angela_test.php")
?>
<div style="font-size:12px;">
</div>
<br />
<table id="tbl_angela_test_data"></table>
<div id="p_angela_test_data"></div>
<script type="text/javascript">
$(document).ready(function(){
    var selected_id;
    var colCap = Array();
    var colDef = Array();
    var grp_filter = 0;

      $.ajax({
         url: "getColDefs.php" ,
         data: {table: "bk_accounts", userid: "5", groupid: "1"},
         dataType: "json",
         async: false,
         success: function (data) {
                colCap = data[0];
                colDef = data[1];
         }
      });

    var cols = '';
    for(i=0; i<colDef.length; i++) {
        cols += colDef[i].name;
        if (i != (colDef.length-1)) {
            cols += ';';
        }
    }

    jQuery("#tbl_angela_test_data").jqGrid({
        url:'admin/angela_test_table_get.php',  
        postData: {columns: cols},
        datatype: 'json',
        mtype: 'POST',
        height: 'auto',
        width: 'auto',
        rowNum: 20,
        rowList: [10,20,30],
        colNames: colCap,
        colModel: colDef,
        pager: "#p_angela_test_data",
        viewrecords: true,
        toolbar: [true, 'both'],
        caption: "angela_test",
        onSelectRow: function(id){
            selected_id = id;
            $("#angela_test_del_bnt, #angela_test_edit_bnt").attr("disabled", false);
            }
    });
    jQuery("#tbl_angela_test_data").setGridWidth(500);

    $("#t_tbl_angela_test_data").height(40);
    $("#t_tbl_angela_test_data").append('<button id="angela_test_edit_bnt" style="height:30px; width:100px;" disabled="true">Edit</button>');


    // edit button
    $("#angela_test_edit_bnt").click(function(){
        var rw = '#angela_test_item_'+selected_id;
        var maintab = $("#tabs");
        if ($(rw).html() != null) {
            maintab.tabs('select',rw);
        } else {
            maintab.tabs('add',rw,'Edit form');
           $(rw, '#tabs').load('admin/angelatest.php?id='+selected_id);
        }
    });


//////////////////////////////
})
</script>

И вторая страница:

<?php
 include_once("angela_test.php"); 
?>
<input type="button" id="btnenterpat" value="Enter Payment">

И код диалога:

<script type="text/javascript">

$(document).ready(function () {
    $("#btnenterpat").click(function () {
        $("#angela_test").dialog('open');
    });

    $("#angela_test").dialog({

        autoOpen: false,
        resizable: false,
        modal: true,
        width: 400,
        height: 300,
        buttons: {
            Cancel: function () {
                $(this).dialog('close');
            },
            ok: function () {
                $(this).dialog('close');
            },
        },
    }).parent().find(".ui-dialog-titlebar-close").hide();
});
</script>

<!--Enter Payment windows --> 
<div id="angela_test" ></div>
<!--dialog windows end -->
0
Angela 26 Мар 2011 в 11:40
«он открывает старый диалог с новым диалогом», что вы имеете в виду?
 – 
William Niu
27 Мар 2011 в 16:37
Привет ... хорошо, вот так, скажем, у меня есть 3 страницы, на первой странице есть таблица, на второй есть кнопка на третьей странице, которая покажет диалоговое окно, содержащее форму... когда я выбираю запись из первую страницу и нажимаю редактировать, я перехожу на вторую страницу, у которой есть еще одна кнопка, я нажимаю эту кнопку, она показывает мне диалог, затем я закрываю ее и закрываю вторую страницу, затем снова с первой страницы выбрал другую запись и продолжайте, покажите мне старый диалог для первого выбора с новым диалогом, и число диалогов увеличивается.
 – 
Angela
28 Мар 2011 в 05:59
Итак, у вас есть диалог, который вызывает другой диалог? Почему бы вам не сделать упрощенную версию ваших страниц на jsfiddle.net или jsbin.com? Это значительно прояснит ваш вопрос и позволит нам помочь.
 – 
William Niu
28 Мар 2011 в 07:06
Веб-сайт слишком большой, я не могу указать только проблему, потому что он не будет работать ... но когда я не использую вторую страницу, содержащую кнопку для диалога, он работает отлично, как будто что-то не так со второй страницей , я хочу знать, как сбросить страницы, когда я закрываю диалог?????
 – 
Angela
28 Мар 2011 в 07:13
Моя проблема аналогична проблеме (закрытие диалогового окна jquery ui не очищает диалоговое окно)
 – 
Angela
28 Мар 2011 в 07:22

1 ответ

Вызов $('#some-div').dialog('destroy') вернет элемент #some-div в исходную форму до вызова $('#some-div').dialog(...). Может быть, вы можете подумать об этом после закрытия диалога?

0
William Niu 28 Мар 2011 в 07:24
Да, я использую вкладку, чтобы открыть вторую страницу. так как я могу обновить вкладку, потому что это решит проблему ??
 – 
Angela
28 Мар 2011 в 10:40
Если вы загружаете вкладку через AJAX, вам просто нужно убедиться, что опция cache: false установлена, чтобы каждый раз, когда эта вкладка выбиралась, она каждый раз загружала содержимое через AJAX.
 – 
William Niu
28 Мар 2011 в 10:51
Хорошо.. когда я использую диалоговое окно удаления и выбираю другую запись, все работает отлично, но кнопка для диалогового окна работает только один раз, как я могу перезагрузить диалоговое окно???
 – 
Angela
28 Мар 2011 в 19:13