2012-12-13 39 views
0

当用户从打开的对话框中选择一个文件(图像,视频等..)我会自动提交表单,我期待从我的控制器方法获取回应,告诉您是成功还是错误。jquery .submit with function()不会触发,没有函数()它会

如果我叫了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

什么是你想怎么办?把一个函数为它意味着你正在创建一个回调函数,当表单提交是 –

+0

我试图得到回应从那里的形式被发布 – TMan

回答

2
$("#fileupload2").submit(); 

以上将提交表单

下面将提交表单可言,只是做一些表单提交时,它必然要提交事件的事件处理程序,所以无论何时以编程方式或使用默认按钮提交表单时,下面都会提示。

$("#fileupload2").submit(function() { alert('hello'); }); 
+0

基本上我想绑定一个函数,当表单提交时从我的控制器获取我执行的代码的结果 – TMan

+0

最底层的一个绑定一个函数,无论何时提交表单,表单可以用顶级提交,或者通过点击提交按钮(无JS)提交。如何从控制器获取代码取决于你,因为我不知道你是如何设置它的,但大多数情况下,提交表单会重新加载页面,使任何JavaScript几乎无效,并开始等等,如果这是你想要避免的,你需要使用ajax。 – adeneo

+0

没错,返回false会停止重装。所以我真的需要提交,有和没有回调函数。我做了它的工作,但现在没有什么是在我的方法中的参数传递。我修改了上面的代码给你看。 – TMan

2

没有回调,你触发submit事件,提交表单。

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

你想做什么?

+0

我控制器的方法背提交表单POST方法在我的控制器,并得到要发回的结果 – TMan

+0

我修改了上面的问题。 – TMan

+0

基本上我想绑定一个函数,当我提交表单时,从我的控制器中获取我执行的代码的结果 – TMan

-1
$("#fileupload2").submit(function() { 
alert("Your Form is submited"); 
}); 
+0

是的,这并没有告诉我很多。我理解语法。 – TMan