jquery ui dialog里嵌套iframe打开其他dialog时,会刷新前一个dialog jQuery UIdialog刷新 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我把一些Javascript的代码贴出来你看看var pWin = window.parent; var pDoc = window.parent.document; var frameId = pWin.frameId; var userWin = pDoc.getElementById(frameId).contentWindow.document.getElementById("userListFrame").contentWindow; var userDoc = userWin.document; var addUserMsgDialog = $("#addUserMsgDialog").dialog({ autoOpen: false, modal: true, width: 200, height: 150, buttons: { "确定": function() { $(this).dialog("close"); } } }); $(function() { $(".date").datepicker({ dateFormat: "yy-mm-dd" }); $(".necessary").each(function() { var preTag = $(this).parent().prev(); var preTagText = preTag.html(); preTag.html(""); var newPreTagText = "<font color='red'>"+preTagText+"</font>"; preTag.html(newPreTagText); }); $(".buttons").button(); /** * 保存人员的事件 */ $("#commit").click(function() { /** * 判断必填项是否为空 */ var cross = true; $(".necessary").each(function() { var val = $(this).val(); if(!val && !$.trim(val)) { var textArr = $(this).parent().prev().html().split(":"); var text = textArr[0]; //addUserMsgDialog.html(text+"不能为空!"); //addUserMsgDialog.dialog("open"); pWin.msgDialog.html(text+"不能为空!"); pWin.msgDialog.dialog("open"); //打开的时候会刷新 cross = false; return false; } }); if(cross == false) { return false; } $.ajax({ url: getRoot() + "user/addUser.action", data: $("#userform").serialize(), type: "post", success: function(data) { var json = eval("("+data+")"); if(json.success) { userWin.location.href = userWin.location.href; pWin.msgDialog.html("新增用户成功!"); pWin.msgDialog.dialog("open"); pWin.userDialog.dialog("close"); } else { addUserMsgDialog.html("新增用户失败!"); addUserMsgDialog.dialog("open"); return false; } }, error: function() { addUserMsgDialog.html("系统繁忙,请联系管理员..."); addUserMsgDialog.dialog("open"); return false; } }); return false; }); }); 按照楼主的描述试了下,并没有刷新,版本jquery-ui-1.8.21楼主自己检查下父页msgDialog变量的作用域是否为全局的,msgDialog变量名是否拼错了,如果错误就会报错导致submit按钮提交了表单test.html<script> $(function () { window.frm = $("#dialog-modal").dialog({ height: 140 }); window.msgDialog = $('#dvMsg').dialog({ autoOpen: false, height: 140, modal: true }); }); </script><div id="dvMsg"></div><div id="dialog-modal"><iframe src="c.html"></iframe></div>c.html<form><input type="submit" id="commit" value="commit" /><script> var pWin = parent; document.write(new Date().toLocaleString()) $(function () { $('#commit').click(function () { pWin.msgDialog.html("TEST不能为空!"); pWin.msgDialog.dialog("open"); //打开的时候会刷新 return false; }); }); </script></form> 这是一个bug,已经提出来了。http://bugs.jqueryui.com/ticket/9166原因是方法【_moveToTop】有点问题。解决办法是参照这里面先自己修,或者等更新。 js web套打 如何固定DIV层的位置 下拉列表_的值 javascript处理页面span内容显示,出灵异现象。请高手帮忙看看。 javascript复制粘贴如何实现? 关于treeview自动展开并选择到相应节点的问题 怎样判断结点类型 这样的三级联动怎么做? 高手破一下这加密的js 在线请教高手------如何将复选框的结果变灰,让用户不能更改? ajax全称名字叫异步javasscript 和XML,请问 这个异步指的是什么? 刷新frame问题
var pDoc = window.parent.document;
var frameId = pWin.frameId;
var userWin = pDoc.getElementById(frameId).contentWindow.document.getElementById("userListFrame").contentWindow;
var userDoc = userWin.document;
var addUserMsgDialog = $("#addUserMsgDialog").dialog({
autoOpen: false,
modal: true,
width: 200,
height: 150,
buttons: {
"确定": function() {
$(this).dialog("close");
}
}
});
$(function() {
$(".date").datepicker({
dateFormat: "yy-mm-dd"
});
$(".necessary").each(function() {
var preTag = $(this).parent().prev();
var preTagText = preTag.html();
preTag.html("");
var newPreTagText = "<font color='red'>"+preTagText+"</font>";
preTag.html(newPreTagText);
});
$(".buttons").button();
/**
* 保存人员的事件
*/
$("#commit").click(function() {
/**
* 判断必填项是否为空
*/
var cross = true;
$(".necessary").each(function() {
var val = $(this).val();
if(!val && !$.trim(val)) {
var textArr = $(this).parent().prev().html().split(":");
var text = textArr[0];
//addUserMsgDialog.html(text+"不能为空!");
//addUserMsgDialog.dialog("open");
pWin.msgDialog.html(text+"不能为空!");
pWin.msgDialog.dialog("open"); //打开的时候会刷新
cross = false;
return false;
}
});
if(cross == false) {
return false;
}
$.ajax({
url: getRoot() + "user/addUser.action",
data: $("#userform").serialize(),
type: "post",
success: function(data) {
var json = eval("("+data+")");
if(json.success) {
userWin.location.href = userWin.location.href;
pWin.msgDialog.html("新增用户成功!");
pWin.msgDialog.dialog("open");
pWin.userDialog.dialog("close");
} else {
addUserMsgDialog.html("新增用户失败!");
addUserMsgDialog.dialog("open");
return false;
}
},
error: function() {
addUserMsgDialog.html("系统繁忙,请联系管理员...");
addUserMsgDialog.dialog("open");
return false;
}
});
return false;
});
});
<script>
$(function () { window.frm = $("#dialog-modal").dialog({
height: 140
});
window.msgDialog = $('#dvMsg').dialog({ autoOpen: false, height: 140, modal: true });
});
</script>
<div id="dvMsg"></div>
<div id="dialog-modal">
<iframe src="c.html"></iframe></div>c.html
<form><input type="submit" id="commit" value="commit" />
<script>
var pWin = parent;
document.write(new Date().toLocaleString())
$(function () {
$('#commit').click(function () {
pWin.msgDialog.html("TEST不能为空!");
pWin.msgDialog.dialog("open"); //打开的时候会刷新
return false;
});
});
</script></form>
http://bugs.jqueryui.com/ticket/9166
原因是方法【_moveToTop】有点问题。
解决办法是参照这里面先自己修,或者等更新。