jeecgV2.0版本的form重复提交问题的解决方案

jeecgV2.0版本的form重复提交问题的解决方案

大家好!
最近咱ITeye网站上看了关于jeecg [官方]基于代码生成器智能开发平台(开源项目)作者的专访,
觉得该项目真真是我们这些程序员的福音,该项目目前V2版本发布

该项目相关资料可以从如下渠道获取:

在线演示:http://www.sapvm.net:8080/

Google Code:http://code.google.com/p/jeecg/

视频下载:http://pan.baidu.com/share/link?shareid=162605&uk=2668473880

JEECG论坛: http://www.jeecg.org/

QQ交流群:106259349,106838471
联系邮箱: [email protected]
据作者讲v3.0马上将于大家见面,通过和作者的简短的交流感觉一见如故,有幸也参与这个项目。
目前发布的2.0版本在form提交是没有规避重复提交的问题,作者让我看看这个问题。
通过对代码的大致了解,发现该项目采用的都是Jquery的form提交,也就是以AJAX的方式提交form表单。
鉴于此我通过在前台js控制基本可以解决这个问题。
现在将我解决该问题的过程分享给大家
我是在前台页面新增一个前台的全局变量来控制form的提交,该变量默认true,
在在用户提交表单时判断该变量如果为true则执行提交动作,否则返回或者提示用户重复提交。
在用户提交表单后,服务端响应结果前将该变量置为false。
在服务端响应结果完成后在将该变量置为true。这基本可以规避用户连续点击提交按钮导致的重复提交问题。

此次主要是在公告管理页面的公告添加实现了该功能即:note.jsp

核心代码如下:

var formFlag = true;

var noteAddForm = $('#noteAddForm').form({
            url : 'noteAction!add.action',
            success : function(data) {
                var json = $.parseJSON(data);
                if (json && json.success) {
                    $.messager.show({
                        title : '成功',
                        msg : json.msg
                    });
                    datagrid.datagrid('reload');
                    noteAddDialog.dialog('close');
                } else {
                    $.messager.show({
                        title : '失败',
                        msg : '操作失败!'
                    });
                }
                //update-begin author:anchao for:重复提交  date:20130309
                formFlag = true;
                //update-end author:anchao for:重复提交  date:20130309
            }
        });

 var  noteAddDialog = $('#noteAddDialog').show().dialog({
            title : '添加公告管理',
            modal : true,
            closed : true,
            maximizable : true,
            buttons : [ {
                text : '添加',
                handler : function() {
                //update-begin author:anchao for:重复提交  date:20130309
                    if(formFlag){
                        formFlag = false;
                //update-end author:anchao for:重复提交  date:20130309
                        noteAddForm.submit();
                //update-begin author:anchao for:重复提交  date:20130309
                    }
                //update-end author:anchao for:重复提交  date:20130309
                }
            } ]
        });

<form id="noteAddForm" method="post">
            <table class="tableForm">
                            <tr>
                                <td>标题</td>
                                <td>
                                    <input name="title" type="text" maxlength="100" class="easyui-validatebox" data-options="required:true" missingMessage="请填写标题"  style="width: 155px;"/>
                                </td>
                            </tr>
                            <tr>
                                <td>内容</td>
                                <td>
                                    <textarea name="content" id="cdescAdd"></textarea>
                                </td>
                            </tr>
            </table>
        </form>

猜你喜欢

转载自anchao.iteye.com/blog/1826821