我有个form,主要用来上传文件用,使用传统的post,文件可以上传上传,但是我不想转页面,所以使用了ajax的ajaxSubmit,可惜失败了,各位大虾能否指点一二。
<table class="tablesorter" cellspacing="0"> <form id = "submitForm" enctype="multipart/form-data" action="cgi-bin/post.cgi",method="post" onsubmit="return operate();"> <tr> <td><li/></td> <td></td> <td><input type="file" name = "upfile" value="浏览文件"></td> <td></td> <td></td> </tr> <tr> <td><li/></td> <td></td> <td><input type="submit" name ="upgrade" value="确定" class="alt_btn"> </td> <td></td> <td> </td> </tr> </tbody> </form> </table>以下是js代码,尝试了2种方法,都不行。
function operate(){ $("#submitForm").ajaxSubmit({ type: 'post',dataType:"xml",url: "cgi-bin/post.cgi",success: function(data){ alert( "success"); alert(data); },error: function(XmlHttpRequest,textStatus,errorThrown){ alert( "error"); } }); return false; } function operate2() { // jquery 表单提交 $("#submitForm").ajaxSubmit(function(message) { // 对于表单提交成功后处理,message为提交页面operation.htm的返回内容 alert(message.toString()); }); return false; // 必须返回false,否则表单会自己再做一次提交操作,并且页面跳转 }
更新,已经解决了。
已经搞定,客户端代码没问题,是服务器代码的问题,因为使用的是ajax方式发送的post,服务端不应该去判断submit有没有按下成功,事实上是失败的,所以应该屏蔽,即if(cgiFormSubmitClicked("upgrade") == cgiFormSuccess)是无需判断的。
原文链接:https://www.f2er.com/ajax/166889.html