在同一个页面父窗口打开子窗口,动态无刷新提交(1/2)

在同一个页面父窗口打开子窗口,动态无刷新提交,超炫基于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提交不刷新页面,以便于您获取更多的相关知识。

时间: 2024-12-02 04:49:53

在同一个页面父窗口打开子窗口,动态无刷新提交(1/2)的相关文章

servlet-关于父窗口和子窗口的request 的问题(可以传值吗??)

问题描述 关于父窗口和子窗口的request 的问题(可以传值吗??) 问题是这样的 我在login.jsp提交表单到一个servlet 然后在这个servlet中将一个list存入 request,再跳转到index.jsp(是用frameset写的 引入了show.jsp).本来我是在show.jsp 中获取数据.可是在index.jsp看不了show.jsp数据 因为login.jsp servlet index.jsp 才是同一了请求 现在我要在index.jsp看到show.jsp 的

打开子窗口,想让父窗口蒙上一层半透明灰色的层,这个怎么做?

问题描述 打开子窗口,想让父窗口蒙上一层半透明灰色的层,这个怎么做?相当于窗口禁用或者没有响应的那种效果. 解决方案 本帖最后由 jf1987 于 2012-05-23 16:30:47 编辑解决方案二:我有控件你要不解决方案三:引用1楼的回复: 我有控件你要不 要啊解决方案四:disabled应该可以吧!

jQuery父窗口与子窗口通信

$("#父窗口元素ID",window.parent.document);  对应javascript版本为window.parent.document.getElementByIdx_x("父窗口元素ID"): 取父窗口的元素方法:$(selector, window.parent.document); 那么你取父窗口的父窗口的元素就可以用:$(selector, window.parent.parent.document); 类似的,取其它窗口的方法大同小异 $

MFC父窗口控制子窗口CListCtrl控件刷新的问题

问题描述 MFC父窗口控制子窗口CListCtrl控件刷新的问题 目标:父窗口单击按钮,向子窗口发送一个消息:子窗口的消息处理函数中,调用列表显示函数来刷新列表数据. 我的代码: // 父窗口void CDlg4::OnButtonClick(){ CDlg43 *dlg = new CDlg43(); dlg->Create(IDD_DIALOG_43this); if (NULL == dlg) { AfxMessageBox(""failed""); d

iframe 父窗口和子窗口相互的调用方法集锦_javascript技巧

一.父窗口调用iframe子窗口方法 1.HTML语法:<iframe name="myFrame" src="child.html"></iframe> 2.父窗口调用子窗口:myFrame.window.functionName(); 3.子窗品调用父窗口:parent.functionName(); 简单地说,也就是在子窗口中调用的变量或函数前加个parent.就行 4.父窗口页面源码: 复制代码 代码如下: <html>

javascript iframe 父窗口和子窗口实现代码

一.父窗口调用iframe子窗口方法 1.html语法:<iframe name="myframe" src="child.html"></iframe> 2.父窗口调用子窗口:myframe.window.functionname(); 3.子窗品调用父窗口:parent.functionname(); 简单地说,也就是在子窗口中调用的变量或函数前加个parent.就行 4.父窗口页面源码: 复制代码 代码如下: <html>

Chrome下ifame父窗口调用子窗口的问题示例探讨

 这篇文章主要介绍了Chrome下ifame父窗口调用子窗口的问题,需要的朋友可以参考下 项目中遇到的一个浏览器不兼容问题:    在IE和Firefox下直接在ifame框架页的父窗口用子窗口的name调用子窗口的js函数都好使,在Chrome下不好使.   代码如下: <frameset rows="108,*,30" border="0" frameSpacing="0" frameBorder="0"> 

Chrome下ifame父窗口调用子窗口的问题示例探讨_javascript技巧

项目中遇到的一个浏览器不兼容问题: 在IE和Firefox下直接在ifame框架页的父窗口用子窗口的name调用子窗口的js函数都好使,在Chrome下不好使. 复制代码 代码如下: <frameset rows="108,*,30" border="0" frameSpacing="0" frameBorder="0"> <frame name="header" scrolling=&q

标签页-如何打开新页面而不是打开新窗口?

问题描述 如何打开新页面而不是打开新窗口? 这种windon.open的方式是在新的窗口打开,我现在想在新标签页打开,该怎么写? 解决方案 用frame,设置它的src 解决方案二: 用window.localtion(). window.open()是打开新页面,也可以设置成打开页面