Создание подтверждения диалога после нажатия кнопки «сохранить» диалога

У меня есть диалоговое окно jquery, в котором пользователь может предоставить новый сервер с различными требованиями. Теперь, когда пользователь нажимает «Сохранить», мы хотим, чтобы окно подтверждения открывалось, чтобы подтвердить, что пользователь хочет это сделать.

Меня больше всего беспокоит то, что это диалоговое окно внутри диалогового окна.

Вот код диалогового окна

$('#newenvironment').dialog({
    autoOpen: false,
    buttons: {
        'Save': function() {
            var url = "./environment/new/";

            // There is code here that processes the fields

            // code to send the data to the server

            // URL gets built
            c.post(url);

            $('#newenvironment').dialog('close');
        },
        'Cancel': function() {
            $('#newenvironment').dialog('close');
        }
    },
    modal: true,
    width: 640
});

Спасибо :)


person Envin    schedule 13.09.2013    source источник


Ответы (1)


Вы можете сделать что-то вроде этих строк:

HTML:

<div id="mainDialog">
    <div id="area">
       <h2>Server requirements </h2>
       Enter something: <input type="text" name="yada"/>
    <div>
</div>

<div id="confirmDialog">Are you sure?</div>

JavaScript:

$("#confirmDialog").dialog({
    height: 250,
    modal: true,
    autoOpen: false,
    buttons: {
        "Yes": function() {
            $(this).dialog("close");

            // show some sort of busy indicator here

            var url = "./environment/new";
            // code to process inputs from main dialog
            //c.post(url);

            // clear busy indicator here
        },
        "No": function() {
            $(this).dialog("close");
            $("#mainDialog").dialog("open"); 
        }
    }
});

$("#mainDialog").dialog({
    height:350,
    modal: true,
    autoOPen: false,
    buttons: {
        "Save": function() {
            $(this).dialog("close");  
            $("#confirmDialog").dialog("open");
        },
        "Cancel": function() {
            $(this).dialog("close");
        }
    }
});

Это закроет главное диалоговое окно, пока отображается диалоговое окно подтверждения, и снова откроет его, если вы не подтвердите. Кроме того, вы можете оставить главное диалоговое окно открытым, пока открыто диалоговое окно подтверждения. В этом случае основное диалоговое окно будет заблокировано до тех пор, пока пользователь не выйдет из диалогового окна подтверждения.

person Joel Lee    schedule 13.09.2013