`
anchao
  • 浏览: 1294 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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
联系邮箱: zhangdaiscott@163.com
据作者讲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>

 

1
1
分享到:
评论
4 楼 anchao 2013-03-14  
海盗大哥 写道
不开源了????????

开源吧~!据说马上出V3版本了~!
3 楼 anchao 2013-03-14  
7454103 写道
提交完,服务器响应完成,再刷新页面呢?

再刷新页面formFlag 会初始化成true啊~!该form就可以再提交了~!
2 楼 7454103 2013-03-10  
提交完,服务器响应完成,再刷新页面呢?
1 楼 海盗大哥 2013-03-09  
不开源了????????

相关推荐

    JSP避免Form重复提交的三种方案

    在Web开发中,尤其是使用JavaServer Pages (JSP)时,Form表单的重复提交问题是一个常见的挑战。这可能导致数据不一致性和服务器资源的浪费。本文将探讨三种防止JSP表单重复提交的方法。 首先,我们可以使用...

    防止Layui form表单重复提交的实现方法

    为了解决这个问题,开发者需要确保表单只提交一次,防止不必要的数据重复处理或者服务器的重复计算。下面详细解释几种防止Layui表单重复提交的方法。 首先,在HTML表单中,为了避免在提交时页面刷新导致的重复提交...

    Form 2.0 控件

    Form 2.0 控件 Form 2.0 控件

    element-ui如何防止重复提交的方法步骤

    在IT行业中,尤其是在前端开发领域,防止用户重复提交是一项重要的任务,这有助于避免因网络延迟或用户误操作导致的数据混乱。Element-UI,一个流行的Vue.js组件库,提供了多种方式来处理这个问题。以下是如何在使用...

    Servlet、Struts、SpringMVC对于表单重复提交的解决方案

    总结来说,Servlet、Struts和SpringMVC都提供了各自的解决方案来防止表单重复提交,主要方法包括使用Session、令牌机制、重定向和拦截器等。开发者可以根据项目需求选择合适的方式来实现,确保应用的稳定性和数据...

    Web应用中避免Form重复提交的三种方案

    ### Web应用中避免Form重复提交的三种方案 #### 一、使用JavaScript预防重复提交 **1. 设置变量标记** 为了防止表单重复提交,可以通过JavaScript设置一个全局变量,该变量用作标记,确保表单只能被提交一次。...

    ext 2.0 form demo

    EXT 2.0 Form Demo 知识点详解 EXT是一个流行的JavaScript库,它专注于构建功能丰富的、用户界面复杂的Web应用程序。EXT 2.0版本在当时是一个重要的里程碑,引入了许多新特性和改进,特别是在表单处理方面。在这个...

    C#2.0 FormDesigner设计器

    然而,根据描述,这个从msdn下载并编译为2.0版本的FormDesigner可能存在一些bug。这可能会影响设计时体验,如控件布局异常、界面渲染问题或者事件处理不正确等。对于这些问题,开发者可能需要查看编译日志,调试源...

    8 种方案解决重复提交问题

    解决重复提交问题的8种方案 在本篇文章中,我们将讨论重复提交问题的八种解决方案。重复提交问题是指在Web应用程序中,当用户提交表单时,可能会导致重复提交,导致数据不一致和其他问题。为了解决这个问题,我们...

    JSP_重复提交_解决方法

    ### JSP重复提交问题及其解决方法 ...针对JSP页面的重复提交问题,可以根据具体应用场景选择合适的解决方案。在实际应用中,结合多种方法可以更有效地防止重复提交,提高系统的健壮性和用户体验。

    Form2调用Form1控件的解决方案

    ### Form2调用Form1控件的解决方案 #### 背景与问题描述 在Windows Forms应用程序开发过程中,经常会遇到需要在不同的窗体之间进行交互的情况。例如,当用户在`Form1`上的一个按钮(假设为`Button1`)被点击时,会...

    JSP避免Form重复提交的三种方案.docx

    在JSP开发中,防止表单(Form)重复提交是一个重要的问题,因为它可能导致数据的冗余或不一致性。以下是对避免Form重复提交的三种常见方案的详细解释: 1. JavaScript控制提交: 这种方法通过JavaScript在客户端...

    Struts2防止重复提交的解决方案

    ### Struts2防止重复提交的解决方案 #### 一、引言 在Web应用程序开发中,一个常见的问题是如何有效地防止表单的重复提交。这不仅能够提高用户体验,还能增强系统的安全性。Struts2作为一款广泛使用的Java Web应用...

    解析php防止form重复提交的方法

    重复提交表单可能导致多种问题,包括数据库多次记录相同数据、用户会话状态的混淆、以及服务器资源的无效消耗等。为了解决这些问题,开发者需要在客户端和服务器端实现多重防御机制。 首先,客户端的防御策略主要...

    修改禁止多次重复提交

    总的来说,防止用户多次重复提交是一个多维度的解决方案,需要前端、后端和数据库共同协作。前端通过禁用按钮防止用户快速点击,后端通过session或token机制确保请求的独特性,数据库则作为最后一道防线,确保数据的...

    ASP.NET中防止刷新页面造成表单重复提交

    针对表单重复提交问题,网上可以找到多种解决方案。其中比较常见的有两种: 1. **使表单按钮失效**:即在用户点击提交按钮后使其失效,以确保表单只能被提交一次。这种方法虽然简单有效,但用户体验较差,尤其是在...

    php防止form重复提交的方法

    在PHP开发中,防止表单重复提交是一个常见的需求,主要是为了避免用户因网络延迟、误操作或恶意行为导致的数据重复录入。以下是几种常见的解决方法: 1. **客户端脚本控制**: 使用JavaScript可以有效地防止用户在...

    Ext2.0 form使用实例的例程

    Ext 2.0的表单组件提供了一整套完整的解决方案,包括各种输入字段、按钮、标签、提示信息等。下面将详细解析这些知识点: 1. **表单(FormPanel)**:这是Ext 2.0中的核心表单组件,它是一个容器,可以包含各种表单...

    Spring web MVC和spring 2.0 form tag解说

    **Spring Web MVC与Spring 2.0 Form Tag详解** 在Web开发领域,Spring Web MVC作为一款强大的MVC框架,被广泛应用于构建企业级的Web应用。它提供了模型(model)、视图(view)和控制器(controller)的分离,使得开发者...

Global site tag (gtag.js) - Google Analytics