dialog关闭有2种实现close和destroy,如果你使用close关闭,再次打开dialog会提交第一次的数据,你的肉眼欺骗了你,你可以在后台输出(前后台数据不相等),close是做隐藏,在次打开就会再次加载引入页,你可以使用console.log()来查询dialog内容。
你只能使用destroy,但是destroy关闭后不能再次打开,底层是把div删除了。
我也参考了很多大神的解决方式,先总结一个最简单的方式(创建临时div,用完就销毁)
var dialog=$('<div/>').dialog({
title: '修改照片',
width: 400,
height: 150,
closed: false,
cache: false,
href: 'upload_img.html',
modal: true,
buttons : [{
iconCls : 'icon-upload',
text : '确定',
handler : function() {
$.messager.progress(); // 显示进度条
$('#upload').form('submit',
{
url : '../../employeInfo/fileUpload',
queryParams:{emp_id:$("#emp_id").val()},
onSubmit : function() {
var isValid = $(this).form('validate');
if (!isValid) {
$.messager.progress('close'); // 如果表单是无效的则隐藏进度条
}
return isValid; // 返回false终止表单提交
},
success : function(data) {
$.messager.progress('close'); // 如果提交成功则隐藏进度条
var json = JSON.parse(data);//转对象
if (json.success) {
$("#staff_photos").attr('src',json.msg);
$(dialog).dialog('destroy');
} else {
$.messager.alert('系统提示',json.msg);
}
}
});
}
}, {
iconCls : 'icon-cancel',
text : '取消',
handler : function() {
$(dialog).dialog('destroy');
}
} ]
});
}