代码:
$('#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就能达到目的)
本文讨论了在特定环境下表单提交成功但success方法未执行的现象,并提供了两种解决方案:重新定义form方法以处理上传附件的问题,或者通过Struts2根据返回值重新定位URL来实现关闭对话框和数据刷新的目的。
8053

被折叠的 条评论
为什么被折叠?



