带有function()的Jquery .submit将不会触发,如果没有function()它将会触发

时间:2012-12-13 05:03:14

标签: jquery html html5

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

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

3 个答案:

答案 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");
});
相关问题