我有一个关于jQuery表单插件的问题。 我尝试异步上传文件,但它不会提交表单。 HTML标记和JavaScript代码如下:
<form id="fileUploadForm" method="post" action="Default.aspx" enctype="multipart/form-data">
<input type="text" name="filename" />
<input type="file" id="postedFile" name="postedFile" />
<input type="button" value="Submit" onclick="UploadFile();" />
</form>
$(document).ready(function() {
$('#fileUploadForm').ajaxForm();
});
function UploadFile() {
var options =
{
url:"Default.aspx",
beforeSend: ShowRequest,
success: SubmitSuccesfull,
error:AjaxError
};
$("#fileUploadForm").ajaxSubmit(options);
return false;
}.
我有另一个测试表单,它只有一个文本框,它可以正常工作。当我注释掉input type="file"这一行时,上面的表单也可以正常工作。那么input type file有什么问题呢?有任何想法吗?
beforeSend
在这种情况下干扰了表单的行为,将其更改为beforeSubmit
(已更新答案!)此外,如果您像上面那样将按钮类型更改为type="submit"
,它将自动调用ajaxForm行为。我还将代码压缩了一些,以显示更短的方式,但无论哪种方式,都存在相同的beforeSend
问题。希望这能帮助到您! - Nick Craver