2012-12-13 45 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