当用户从打开的对话框中选择一个文件(图像、视频等)时,我会自动提交表单,我希望从我的控制器方法中得到响应,告诉我成功或错误。
如果我这样调用 jquery 提交,它将正常工作:
$("#fileupload2").submit(); //fileupload2 is a form tag
只要我添加这样的东西,它就不会:
$("#fileupload2").submit(function () { alert('hello'); });
我不知道为什么只要我在里面添加函数就不会被调用。我在浏览器开发工具中没有看到任何错误。我的 HTML 如下所示:
<form id="fileupload2" action="/Home/UploadFiles" method="POST" enctype="multipart/form-data">
<div class="btn btn-success fileinput-button">
<i class="icon-plus icon-white"></i>
<span>Add files...</span>
<input id="fileupload" type="file" onchange="uploadSelectedFile(this);" name="file">
</div>
@*<input type="submit" />*@
</form>
<script>
$(document).ready(function () {
$("#fileupload2").submit(function (e) {
alert('hello'); $.post('/Home/UploadFiles', $('#fileupload2').serialize(), function (data) {
alert(data);
});
return false;
});
});
function uploadSelectedFile() {
$("#fileupload2").submit();
}
</script>
我在uploadSelectedFile 方法onchange 中调用jquery 提交。关于为什么会发生这种情况的任何建议或想法,我将不胜感激。对我来说,这似乎是正确的。
控制器方法:
[HttpPost]
public ActionResult UploadFile() {
//Some code
return Json("success"); //or error
}