ajax提交表单,MVC下action执行两次,前台只执行一次,求解

问题描述

前台ajax提交:第一步,点击添加按钮:<td><aclass="easyui-linkbutton"onclick="ns.rolelist.add();">添加</a></td>第二步,调用add()方法:ns.rolelist.add=function(){userAE({iconCls:'icon-add',formUrl:'/DZZHYHDHCB/Add'});};第三步,调用userAE()方法,通过href方式打开另一个编辑页面窗口:varuserAE=function(options){varopt=options||{};varqueryParams=opt.queryParams;varhref='/DZZHYHDHCB/DzzhyhdAE?t='+newDate().getTime();if(queryParams&&queryParams.DZZHYHDHCBBH){href+='&id='+queryParams.DZZHYHDHCBBH;}vard=MyExt.dialog({id:'usAE_form',iconCls:opt.iconCls,height:440,width:600,title:'管理',href:href,buttons:[{text:'保存',iconCls:'icon-save',plain:true,handler:function(){MyExt.msgProgress();varf=d.find('form');f.form('submit',{url:opt.formUrl,queryParams:opt.queryParams||{},onSubmit:MyExt.formValid,success:function(data){try{varjson=$.parseJSON(data);MyExt.showOrAlert(json,function(){$('#usAE_form').dialog('destroy');rolelist_dg.datagrid('load').datagrid('unselectAll');});}finally{MyExt.closeProgress();}}});}},{text:'关闭',iconCls:'icon-cancel',plain:true,handler:function(){d.dialog('destroy');}}]});};第四步,点击新窗口“保存”按钮,后台action执行保存:publicJsonResultAdd(CLBAXXTZq){Messagemsg=newMessage();CLBAXXTZServiceusService=newCLBAXXTZService();usService.AutoCloseSession=false;try{usService.Save(q);msg.setShortMsg(true,"添加数据成功");}catch(Exceptionex){msg.msg="错误:"+ex.Message;}finally{usService.Close();}returnJson(msg,"text/plain");}产生的错误就是,前台只执行一次,后台action执行两次。导致,第一次执行的时候,一条数据存入了数据库。返回,然后马上又执行第二次,就会存入一条新的数据,所有值为空。导致浏览器报错jquery.min.js,页面卡住。我这就这里调用了这个方法,不知道为什么会出错

解决方案

解决方案二:
f.form('submit',{url:opt.formUrl,queryParams:opt.queryParams||{},onSubmit:MyExt.formValid,这一块会不会有问题?
解决方案三:
有什么问题?

时间: 2024-10-01 05:23:42

ajax提交表单,MVC下action执行两次,前台只执行一次,求解的相关文章

介绍ajax提交url与ajax提交表单的区别

 本篇文章主要是对ajax提交url与ajax提交表单的区别进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 1:ajax自已构造一个url,这种方式传参数要用Data,不能用于表单提交.  例:    代码如下:          function createHtml(id){              $("#reloading").show();               //edit_bg是个div,提交时显示,这样可以使背景页面不能操作.             

Jquery中ajax提交表单几种方法(get、post两种方法)_AJAX相关

在jquery中ajax提交表单有post与get方式,在使用get方式时我们可以直接使用ajax 序列化表单$( 表单ID) serialize();就行了,下面我来介绍两个提交表单数据的方法.$get方式提交表单get() 方法通过远程HTTP ,下面我来介绍两个提交表单数据的方法. $get方式提交表单 get() 方法通过远程 HTTP GET 请求载入信息 格式 $(selector).get(url,data,success(response,status,xhr),dataType

jQuery ajaxSubmit 实现ajax提交表单局部刷新_jquery

AJAX简介 AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 不是新的编程语言,而是一种使用现有标准的新方法. AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下. 需要引入 : jquery-form.js 使用说明: Java代码 $(document).ready(function() { var options = { target: '#mydiv', // 需要刷新的区域

Jquery中ajax提交表单几种方法(get、post两种方法)

在jquery中ajax提交表单有post与get方式,在使用get方式时我们可以直接使用ajax 序列化表单$( 表单ID) serialize();就行了,下面我来介绍两个提交表单数据的方法.$get方式提交表单get() 方法通过远程HTTP ,下面我来介绍两个提交表单数据的方法. $get方式提交表单 get() 方法通过远程 HTTP GET 请求载入信息 格式 $(selector).get(url,data,success(response,status,xhr),dataType

VIEW层AJAX提交表单到Controller的实体(AJAX传递序列化的输入元素)

在MVC环境中,AJAX方式添加一个对象,这个对象在Models中是一个视图模型,在前台显示时是这样的代码:   <%using (Html.BeginForm())       { %>     姓名:<%=Html.TextBoxFor(model=>model.UserName) %>     Email:<%=Html.TextBoxFor(model=>model.Email) %>     年龄:<%=Html.TextBoxFor(mod

服务器-Ajax提交表单与一般提交表单的差别?

问题描述 Ajax提交表单与一般提交表单的差别? 在一般提交表单时,浏览器html将表单数据submit到服务器后,服务器会执行相关的处理脚本 比如(php,asp)等,进行处理,再将相关的HTML返回到浏览器端. 而ajax改变了这一过程,它是浏览器html将表单数据提交给本地的javascript,而javascript调用XMLHTTPRequest, 利用XMLHTTPRequest将数据传给服务器端,服务器端通过javascript收到数据,再调用处理脚本(php, asp)进行处理,

java web提交表单 怎么没action到servelet 而是提示我下载文件?

问题描述 java web提交表单 怎么没action到servelet 而是提示我下载文件? <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "ht

ajax提交url与ajax提交表单的详细比较_AJAX相关

1:ajax自已构造一个url,这种方式传参数要用Data,不能用于表单提交. 例: 复制代码 代码如下:          function createHtml(id){             $("#reloading").show();              //edit_bg是个div,提交时显示,这样可以使背景页面不能操作.             $("#edit_bg").show();             $.ajax({        

Ajax提交表单时验证码自动验证 php后端验证码检测_php实例

本文通过源码展示如何实现表单提交前,验证码先检测正确性,不正确则不提交表单,更新验证码. 1.前端代码 index.html <!DOCTYPE html> <html> <head> <title>验证码提交自验证</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta htt