0

当用户从打开的对话框中选择一个文件(图像、视频等)时,我会自动提交表单,我希望从我的控制器方法中得到响应,告诉我成功或错误。

如果我这样调用 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
    }
4

3 回答 3

2

如果没有回调,您将触发submit提交表单的事件。

使用回调,您将该函数绑定到submit事件,这意味着当提交表单时,该函数将被执行。

你想做什么?

于 2012-12-13T05:04:36.580 回答
2
$("#fileupload2").submit();

以上将提交表格

下面根本不会提交表单,而是在提交表单时做一些事情,它是一个绑定到提交事件的事件处理程序,所以每当表单被提交时,以编程方式或使用默认按钮,下面都会发出警报。

$("#fileupload2").submit(function () { alert('hello'); });
于 2012-12-13T05:05:01.573 回答
-1
$("#fileupload2").submit(function() {
 alert("Your Form is submited");
});
于 2012-12-13T05:15:41.380 回答