JQUERY-ui dialog x button function

jquery, jquery-ui, jquery-ui-dialog

Solution

You could use a third-party variable (bAccepts which is False by default) and third-party method.

When user accepts:

- Set bAccepts to True

When user cancels:

- Set bAccepts to False

When onClose is fired, call the method doClose() which does the following:

- if bAccepts is True => accept

- else => cancel

Here is some un-tested psuedo-code. See working code.

var bAccepts = false;
var content = {
                    autoOpen    : false,
                    modal       : true,
                    width       : 350,
                    minHeight   : 50,
                    height      : 350,
                    position    : "center",
                    resizable   : false,
                    draggable   : false,
                    close       : function () { if (bAccepts) {...} else {...} },
                    buttons: {
                        "Cancel": function cancel() { bAccepts = false; $(this).dialog("close");},
                        "Accept": function accept() { bAccepts = true; $(this).dialog("close");}
             }
};

Problem

I'm using the jquery-ui dialog box. My problem is upon clicking the x button to close the dialog, i also need to perform the cancel() function. How can I do this? ``` var content = { autoOpen : false, modal : true, width : 350, minHeight : 50, height : 350, position : "center", resizable : false, draggable : false, close : function () {$(".privacy_modal").prop("checked", false);}, buttons: { "Cancel": function cancel() { $(".privacy_modal").prop("checked", false); $(this).dialog("close"); }, "Accept": function accept() { $(".privacy_modal").prop("checked", true); $(this).dialog("close"); } } }; ``` NOTE: Using close doesn't solve my problem because it overrides the function when i clicked the accept button

Original source