新人使用EasyUI的From表单实现文件上功能,后台处理成功后返回json串,但返到了页面上显示我的json数据串,而没有走到success,代码如下:
$(function() {
$('#importFile').click(function() {
$.messager.progress(); // 显示一个进度条
$('#activityUserFileUpload').form('submit', {
url : basePath + '/activity?methodName=importActivityFile',
onSubmit : function() {
var isValid = $(this).form('validate');
if (isValid) {
$.messager.progress({
text : "正在导入,请稍后..."
});
return true;
}
return false;// 未通过表单验证阻止表单提交
},
success : function(data) {
$.messager.progress('close'); // 当成功提交之后隐藏进度条
// alert(data);
console.log(data);
}
});
});
});
找了很久没有找到原因,后来发现提交了两次表单,如下图:
为什么是两次提交呢想不明白,所以尝试着把上面代码当中的"submit"删除,再次尝试就正常了,如下图:
把上图中红色选择的删除就可以,不知道有没有人也遇到此问题。解决方法是不是一样。
问题原因:
问找到了,现在前来看一下我页面上的代码如下图:
<form id="activityUserFileUpload" action="" method="post" enctype="multipart/form-data">
<input type="file" class="easyui-validatebox" validType="validateFile" required="true" name="file" style="width:150px;"/>
<input id="importFile" type="submit" name="import" value="导入用户"/>
<a href="${application.getContextPath()}/tempFile/Template.xlsx">下载模板</a><br/></a>
</form>
可以看到我导入用户按钮使用了"submit"来处发事件,所以我们可以看到是两次请求。所以要解决问题有两个方法了,要么你提交时不用"submit"提交,如果你使用了"submit"提交他就得像我上面那样把js当中的"submit"删除。