我需要显示一个记录表,在每一行,有一个锚标记点击将打开一个Jquery对话框。当我单击每行的链接时,对话框成功打开(目前,我有两行,并且已经硬编码了锚和div标签的id,我需要使它们动态)。无论如何,一旦对话框打开,我可以选择取消和勾选某些复选框,我做了一些更新。更新应该在父窗口上得到反映,这很好。但是,当我再次打开对话框时,它在进行更新之前打开初始数据,而不是显示更新后刷新的对话框。此外,它开始抛出错误消息,说"在初始化之前不能在对话框上调用方法;试图调用方法'close'"
$("#vendoradmin-artnodesearch-popup-0").dialog(opt).dialog("open");});
$("#vendoradmin-artnodesearch-popup-0").dialog(
{
autoOpen : false,
modal : false,
resizable : false,
height : 500,
width : 750,
buttons : [{
text: "Submit",
click : function() {
var selNodes = "";
$('#artNodeAvailListId-0 input:checkbox:checked').each(
function() {
selNodes += $(this).val() + ",";
});
$("#frmAssignArticleHierarchy\:hdnArticleNodeIds").attr("value",
selNodes);
frmAssignArticleHierarchy["frmAssignArticleHierarchy:btnRefreshArticleFilter"]
.click();
$(this).dialog("close");
}
}]
});
};
问题是当你关闭对话框时,实际上它并没有删除对话框中的数据,所以当它再次显示时,它会显示已经存在的数据,所以你需要添加一个关闭选项来删除#vendoradmin-artnodesearch-popup-0
内容,只需检查jquery对话框的api,你就可以找到这样做的代码。
$("#vendoradmin-artnodesearch-popup-0").dialog(
{
autoOpen : false,
modal : false,
resizable : false,
height : 500,
width : 750,
close: function(){//add code to remove the data in vendoradmin-artnodesearch-popup-0}
buttons : [{
text: "Submit",
click : function() {
var selNodes = "";
$('#artNodeAvailListId-0 input:checkbox:checked').each(
function() {
selNodes += $(this).val() + ",";
});
$("#frmAssignArticleHierarchy\:hdnArticleNodeIds").attr("value",
selNodes);
frmAssignArticleHierarchy["frmAssignArticleHierarchy:btnRefreshArticleFilter"]
.click();
$(this).dialog("close");
}
}]
});
};
$("#vendoradmin- artnoresearch -popup-0")是您在飞行中创建的元素吗?你是否封装了你的对话框id ?你可以使用。ui-dialog作为前面的选择器吗?这些id是唯一的吗?
click: function () {
var selNodes = "";
$('.ui-dialog #artNodeAvailListId-0 input:checkbox:checked').each(
function () {
selNodes += $(this).val() + ",";
});
$("#frmAssignArticleHierarchy\:hdnArticleNodeIds").attr("value",
selNodes);
$(this).dialog("close");
我想你可能有冲突的id