GoodStudy
作者GoodStudy·2014-04-16 01:42
研发工程师·NT

使用dojo/request对象实现Domino Ajax提交表单数据

字数 2192阅读 1910评论 2赞 2
最近开始专注开源sifunflow工作流引擎,并且对sifunflow工作流保存函数进行调整,使用ajax保存表单数据,优化系统提高用户体验,并将修改后的源代码向大家共享,希望有更多人参与到sifunflow开源工作流引擎开发。
-----------------------------------------------------------------------------------------
domino系统很多时候还是采用传统的提交表单方式进行数据保存,这样的做法,自然开发人员少写一些代码,但是用户体验不好,提交表单会导致页面刷新重新加载和长时间等待。
因此如果能采用ajax提交domino表单数据,无疑可以大大提高用户体验。
修改后sifunflow流程引擎的表单保存函数如下:

/**
 * fCheckForm
 * 参数:
 * saveSuccessFun:数据保存成功后调用
 * saveFailFun : 数据保存失败后调用(可选)
 * 功能:表单数据有效性验证;如果验证通过,则进行ajax提交表单;否则不提交数据,并调用保存失败函数
 * 
 * */
function fCheckForm(saveSuccessFun,saveFailFun){
var djForm = dijit.byNode(document.forms[0]);
if(!djForm){
var curForm = document.forms[0];
djForm=new dijit.form.Form({
action:curForm.action,
method:curForm.method, 
name:curForm.name,
enctype:curForm.enctype},curForm)
}
if(djForm.validate()){
try{
fCustomSaveDoc();
document.getElementById("saveRowItem").onclick();
}catch(e){
require(["dojo/request","dojo/dom-form"],function(request,domForm){
           request.post(djForm.action, {
               data: domForm.toObject(djForm.domNode),
               timeout: 2000
 
           }).then(function(response){
            console.log(response);
            if(saveSuccessFun){saveSuccessFun()}
           });
})
        }
    }else{
    if(saveFailFun){saveFailFun()}
        return false;
    }
    return true;
}

-----------------------------------------------------------------------------------------
 sifun 工作流平台,V1.1完整版已经发布,供大家下载使用!
当前工作流平台,包括了收文、发文模块。收文转发文,发文转收文模块
外出授权模块
流程引擎平台研发团队都为10年以上的资深顾问,从事OA、SAP、工作流、BPM实施经验丰富
如需要技术支持,请加入QQ群: 81845457
下载地址:http://yunpan.cn/Q4V3at5CXKJNH  访问密码 5a78

因为在一台服务器上安装了分区,做了SSO,现在IP已经不能访问了。给各位关注的朋友,带来不变,请大家谅解!!
为了能够给大家提供更好的服务,希望大家在自己配置一下host,配置如下
61.128.167.30  oa.sifunflow.com
61.128.167.30  dev.sifunflow.com

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

2

添加新评论2 条评论

GoodStudyGoodStudy研发工程师NT
2014-06-06 10:19
这段代码可以ajax提交表单中input type='file'元素
GoodStudyGoodStudy研发工程师NT
2014-06-06 10:18
/**
* fCheckForm
* 参数:
*                 saveSuccessFun:数据保存成功后调用
*                 saveFailFun : 数据保存失败后调用(可选)
* 功能:表单数据有效性验证;如果验证通过,则进行ajax提交表单;否则不提交数据,并调用保存失败函数
*
* */
function fCheckForm(saveSuccessFun,saveFailFun){
        var djForm = dijit.byNode(document.forms[0]);
        if(!djForm){
                var curForm = document.forms[0];
                djForm=new dijit.form.Form({
                                        action:curForm.action,
                                        method:curForm.method,
                                        name:curForm.name,
                                        enctype:curForm.enctype},curForm)
        }
        if(djForm.validate()){
                        try{
                                fCustomSaveDoc();
                                document.getElementById("saveRowItem").onclick();
                        }catch(e){
                                if(document.getElementById("Query_flow_decoded")){
                                        document.getElementById("Query_flow_decoded").value ="";       
                                }
                   
                                require(["dojo/request/iframe","dojo/dom-form"],function(request,domForm){
                            request.post(djForm.action, {
                                form: djForm.domNode,
                                handleAs:"xml"
                 
                            }).then(function(response){
                                    console.log(response);
                                    if(saveSuccessFun){
                                            saveSuccessFun()
                                    }else{
                                            alert("保存成功!")
                                    }
                            },function(err){
                                    console.log(err,argruments)
                            });
                                })
        }
    }else{

            if(saveFailFun){saveFailFun()}
        return false;
    }
    return true;
}
Ctrl+Enter 发表

作者其他文章

相关问题

相关资料

X社区推广