我有个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)是无需判断的。