我正在尝试使用以下代码打开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()进行重定向。
答案 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)