EasyUI form success IE

本文讨论了在特定环境下表单提交成功但success方法未执行的现象,并提供了两种解决方案:重新定义form方法以处理上传附件的问题,或者通过Struts2根据返回值重新定位URL来实现关闭对话框和数据刷新的目的。

代码:

$('#saveForm').form('submit', {
	    url:urlStr,    
	    onSubmit: function(){
	    	var isValid = $(this).form('validate');
			if (!isValid){
//				alert("表单未添加完整");
			}
			return isValid;	// 返回false终止表单提交
	    },    
	    success:function(data){
	    	$('#win').dialog('close');
	    	$('#grid').datagrid('reload');
	    }
	}); 

环境:IE9

现象:表单提交成功,有数据返回,但是success 方法里面没有执行!

解决办法:

1.重新定义form方法

if($.fn.form){
	$.extend($.fn.form.methods, {    
           //这个方法是获取form的值转换成json对象
	   object: function(jq){
            var o = {};
            var a = jq.serializeArray();
            $.each(a, function () {
                if (o[this.name]) {
                    if (!o[this.name].push) {
                        o[this.name] = [o[this.name]];
                    }
                    o[this.name].push(this.value || '');
                } else {
                    o[this.name] = this.value || '';
                }
            });
            return o;		
		},
         //新的submit方法
	submit:function(jq,options){
            if(false==options.onSubmit()) return;
            var form_data=jq.form("object");
            $.post(options.url,form_data,options.success,"text");
        }
    });
}
缺点:如果表单中有上传附件,附件是上传不了的(需要安装插件..有点麻烦)。

2.如果用是Struts2,根据返回值,重新定位一下URL吧!(因为在success里我只是想关闭对话框,所以从新定位URL就能达到目的)



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值