问题描述
前台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,这一块会不会有问题?
解决方案三:
有什么问题?