ajax提交表单时无法请求到后台

nangualian 2013-09-03 05:17:20

function uploadFile(){
$("#uploadForm").ajaxSubmit({
success:function(){
if(data.success) {
alert("上传成功!");
}
},
error:function(){
alert(1);
}
});
}



<form action="<%=base%>/upload.do" method="post" enctype="multipart/form-data" id="uploadForm" name="uploadForm"">
<h4 class="top_h4">文件上传</h4>
<a href="javascript:void(0);" class="f_close" title="关闭">关闭</a>
<div class="f_label">
<p>科目:
<select onchange="stationChange()" id="subject" name="subject">
<option value="0">【其他】</option>
<c:if test="${!empty subject}">
<c:forEach items="${subject}" var="item">
<option value="${item[0]}">${item[1]}</option>
</c:forEach>
</c:if>
</select>
<p>
</div>
<div class="f_label">
<p>年级:
<select id="grades" name="grade" onchange="stationChange()">
<c:if test="${!empty grades}">
<c:forEach items="${grades}" var="item">
<option value="${item}">${item}</option>
</c:forEach>
</c:if>
</select>
</p>
</div>
<div class="f_label">
<p>版本:
<select id="versions" name="versions" onchange="stationChange()">
<c:if test="${!empty versions}">
<c:set var="i" value="1"/>
<c:forEach items="${versions}" var="item">
<option value="${item[0]}">${item[1]}</option>
<c:set var="i" value="${i+1}"/>
</c:forEach>
</c:if>
</select>
</p>
</div>
<div class="f_label">
<p>章节:
<select id="unite" name="unite" onchange="stationChange()">
<c:if test="${!empty unite}">
<c:forEach items="${unite}" var="item">
<option value="${item[0]}">${item[1]}</option>
</c:forEach>
</c:if>
</select>
</p>
</div>
<div class="file">
<input type="file" name="file"/>
</div>
<div>
<input type="button" value="上传" class="submit" onclick="uploadFile()"/>
</div>
</form>



后台请求方法

@RequestMapping(value="/upload")
public @ResponseBody Map<String, Object> upload(
@ModelAttribute DocInfo docInfo,
@RequestParam("file") MultipartFile multipartFile,
HttpServletRequest request,HttpServletResponse response) throws Exception{



上传按钮单击事件能进入.ajaxSubmit方法内 但无法正常执行
把按钮的属性改成submit能正常表单提交
疑问 为什么.ajaxSubmit无法提交?能进入方法但是没有请求到后台?
...全文
652 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
nangualian 2013-09-04
  • 打赏
  • 举报
回复
已经解决了 抱歉这么晚回帖阿 找了半天是我没添加from.js
Go 旅城通票 2013-09-03
  • 打赏
  • 举报
回复
引用 4 楼 nangualian 的回复:
[quote=引用 3 楼 showbo 的回复:] ajaxSubmit只是给表单提交时注册ajax的相关处理事件,并不是马上提交表单 要点击表单的提交按钮提交表单后才会触发ajaxSubmit注册的事件,你的是button,不是提交按钮,所以没有触发表单提交事件,当然就没有请求服务器
我以前的项目中用的a标签也可以提交 这是为什么呢?[/quote] 什么版本的?最新的不行。。
 <form id="myForm" action="data.asp" method="post"> 
    Name: <input type="text" name="name" /> 
    Comment: <textarea name="comment"></textarea> 
    <input type="submit" value="Submit Comment" /> 
</form> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script> 
    <script src="http://malsup.github.io/jquery.form.js"></script> 
 
    <script>
        // wait for the DOM to be loaded
        $(document).ready(function () {
            // bind 'myForm' and provide a simple callback function 
            $('#myForm').submit(function () {
                $('#myForm').ajaxForm();
                return false
            });
        }); 
    </script>
nangualian 2013-09-03
  • 打赏
  • 举报
回复
引用 3 楼 showbo 的回复:
ajaxSubmit只是给表单提交时注册ajax的相关处理事件,并不是马上提交表单 要点击表单的提交按钮提交表单后才会触发ajaxSubmit注册的事件,你的是button,不是提交按钮,所以没有触发表单提交事件,当然就没有请求服务器
我以前的项目中用的a标签也可以提交 这是为什么呢?
Go 旅城通票 2013-09-03
  • 打赏
  • 举报
回复
ajaxSubmit只是给表单提交时注册ajax的相关处理事件,并不是马上提交表单

要点击表单的提交按钮提交表单后才会触发ajaxSubmit注册的事件,你的是button,不是提交按钮,所以没有触发表单提交事件,当然就没有请求服务器
nangualian 2013-09-03
  • 打赏
  • 举报
回复
引用 1 楼 fridayday2010 的回复:
ajaxSubmit用法错误 看官方文档
请教如何使用?
南瓜三三 2013-09-03
  • 打赏
  • 举报
回复
ajaxSubmit用法错误 看官方文档

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧