在同一个页面父窗口打开子窗口,动态无刷新提交,超炫基于jquery ajax提交,兼容ie7+,火狐..
基于父窗口打开子窗口,效果超炫,用jquery ajax 动态无刷新提交...
下面先来分析代码:父窗体页面代码
<div>
<a href="网页特效:void(0);" url='openerweb.asp教程x' id="aparent">编辑</a>
<div id="blockoptip" style="display:none;" class="tipbox"><img src="http://images.cnblogs.com/busy.gif" alt="wait" /> <span id="blockoptipaction">正在保存,请稍等...</span></div>
<div id="wrap">
<div><img src="/styles/1/busy.gif" id="wrapimg"/><span id="wraptitle"></span></div>
<div id="wrapbtn" ><input class="ok" type="button"/><input class="cancel" type="button"/></div>
<iframe id="blockframe" style="display:none" name="blockframe" width="100%" height="100%" frameborder="0" scrolling="auto" ></iframe>
</div>
</div>
子窗体代码:
<div class="managerform">
<form id="form1" runat="server">
子窗口.........dddd </form>
<div id="blockoptip" style="display:none;" class="tipbox"><img src="/images/busy.gif" alt="wait" /> <span id="blockoptipaction">正在保存,请稍等...</span></div>
<div id="wrap">
<div><img src="/styles/1/busy.gif" id="wrapimg"/><span id="wraptitle"></span></div>
<div id="wrapbtn" ><input class="ok" type="button"/><input class="cancel" type="button"/></div>
<iframe id="blockframe" style="display:none" name="blockframe" width="100%" height="100%" frameborder="0" scrolling="auto" ></iframe>
</div>
</div>
父窗口的js代码:
<script type="text/javascript">
function savedetail() {
alert("ok");
$.ajaxcommon("正在保存,请耐心等待....", "openerweb.aspx?act=save", null, function (p) {
if (p.succ) { parent.unblock(); }
});
return false;
}
</script>
子页面和父页面都要引用jextending.js,这个文件有两个主要的方面,分别如下:
function showedit(src, title, width, height, savecallback,bottom,showintop) {
submitfunc=null;
loadfunc = null;
var b=bottom==undefined?true:bottom;//是否需要底部的保存关闭按钮
if (parent.p == true && showintop!=false&&showintop==undefined) {
//如果存在父窗口,则开始父窗口的弹出框
parent.showedit(src, title, width, height, savecallback, b,true);
return;
}
submitfunc = (savecallback == undefined || savecallback == null) ? (function () { }) : savecallback;
var isobject=(typeof(src)=="object");
var obj=src;
if (!isobject) {
var href = src;
if (href.indexof('?') > 0) {
href += "&mm=" + math.random();
}
else {
href += "?mm=" + math.random();
}
obj=$("#blockframe").attr("src",href);
}
$.load("正在加载....");
loadfunc=function(){
ub(true);
$.blockui({ message:obj , theme: true, title: title,fadeout:false,needbottom:b,
themedcss教程: { width: width, height: height },
onblock: function () {
if (typeof (submitfunc) == "function") {
$("#blockdiv").find(".bottom input[name='save']").bind("click",function () { submitfunc(); }); //执行保存按钮
}
}
});
};
settimeout(loadfunc,2000);
}。这是一个打开子页面的函数,它包括延时加载效果设置,及打开窗口的相关设置. 第二函数是ajaxcommon提交处理函数。
$.ajaxcommon = function (title, url, data, callback, isonlycallback) {
$.load(title); //设置载入状态
$.ajax({
url: url + (url.indexof("?") == -1 ? "?" : "&") + "s=" + math.random(),
type: 'post',
datatype: 'json',
data: data,
error: function (a) {
$.error(a);
},
success: function (json) {
if (json.succ == 1 || json.succ) {
settimeout("$.correct('" + json.message + "')", 500);
timeoutfunc = settimeout("ub()", 1500);
if (typeof (callback) == "function") {
window.settimeout(callback,1700,json);
}
}
else {
var info = json.info || json.message;
if (isonlycallback!=undefined&&isonlycallback==true) { callback(json); return; }
$.error(info);
callback(json);
}
return;
}
});
};这是一个ajax提交处理的函数,包括载入状态,处理结果的返回及子窗口关闭等相关的.
首页 1 2 末页
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索函数
, 代码
null
模态化窗口提交后刷新、ajax无刷新提交表单、表单提交后不刷新页面、表单提交后刷新页面、submit提交不刷新页面,以便于您获取更多的相关知识。