从Jquery确认对话框返回值

时间:2013-04-25 10:44:21

标签: jquery modal-dialog

我正在尝试使用以下代码打开Jquery确认框。

var a = $('#confirm')                
            .data("x","defaultValue")
            .dialog('open');

alert(a.data("x"));

在对话框中我尝试更改x的值。

    $("#confirm").dialog({
    resizable: false,
    autoOpen: false,
    height: 180,
    width: 400,
    modal: true,
    buttons: {
        "Leave the page": function() {                
            $(this).data("x","this is a test");                
            $(this).dialog("close");
        },
        Cancel: function() {
            $(this).dialog("close");
        }
    }
});

如何获取x的修改值。此时警报显示“DefaultValue”。但是想要得到“这是一个考验”。

有什么想法吗?

PS:我无法在对话框中使用window.open()进行重定向。

3 个答案:

答案 0 :(得分:1)

终于设法解决了这个问题。只是想在这里发布,如果有人需要它。

 $("#confirm").dialog({
    resizable: false,
    autoOpen: false,
    height: 180,
    width: 400,
    modal: true,
    buttons: {
        "Leave the page": function () {
            var anchorId = $(this).data("anchorId");
            var formId = $(this).data("formId");

            if (typeof anchorId !== "undefined")
                window.location.assign(anchorId);
            if (typeof formId !== "undefined")
                $(formId).submit();
            $(this).dialog("close");
        },
        Cancel: function () {
            $(this).dialog("close");
        }
    }
});

然后打开确认对话框

 $("a").live("click", function () {       
    if (hasUnsavedData()) {
        $('#confirm')
         .data("anchorId", this)
         .dialog('open');
        return false;
    } else return true;
});

答案 1 :(得分:0)

你不能,我的意思是至少在对话框之外,“警告”在“离开页面”之前执行。您需要在“对话关闭”呼叫后立即发出警报。

$(this).data("x","this is a test");
$(this).dialog("close");
alert($(this).data("x"));

答案 2 :(得分:0)

解决方案:

Jquery Dialog Confirmation with return

这很难找到,明智地使用它