当用户从打开的对话框中选择文件(图像,视频等)时,我会将表单自动提交,并且我希望从我的控制器方法中获取响应,告知成功或错误。
如果我这样调用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
}
答案 0 :(得分:2)
如果没有回调,您将触发提交表单的submit
事件。
使用回调,您将该函数绑定到submit
事件,这意味着在提交表单时,将执行该函数。
你想做什么?
答案 1 :(得分:2)
$("#fileupload2").submit();
以上将提交表格
以下将 NOT 提交表单,但只是在提交表单时执行某些操作,它是绑定到submit事件的事件处理程序,因此无论何时以编程方式提交表单,默认按钮,下面会提示。
$("#fileupload2").submit(function () { alert('hello'); });
答案 2 :(得分:-1)
$("#fileupload2").submit(function() {
alert("Your Form is submited");
});