2010-10-13 62 views
6

我有一個帶有Beginform的ASP.NET MVC視圖,它指定了一個操作和控制器來提交。但在提交時,我想使用jQuery調用一個服務來獲取一些數據,然後將這些數據與表單一起提交。JavaScript在提交ASP.NET MVC表單之前工作

目前我在窗體上有一個提交按鈕,按鈕的onclick事件調用JavaScript方法。根據我從該方法得到的結果,我希望將表單提交給指定的操作。

現在我無法得到這個工作。這是否是正確的方式來做到這一點,或者我應該使用jQuery做一個職位?我認爲使用我已經在窗體中指定爲動作/控制器的內容會很好。

回答

11

我認爲最好的方法是在表單上使用事件「提交」,因爲用戶可以通過在某些字段中按Enter鍵來提交表單。猜測,有可能這個事件過程中改變一些輸入值,

jQuery('form#myform').submit(function(e){ 
    //.... 
    if (somevar == false) 
    { 
     // stop submitting form 
     e.preventDefault(); 
    } 
    else 
    { 
     jQuery('input#hiddeninput').val('somevalue'); 
    } 
}) 
+0

很好的答案,但不完全是我想要做的。我想爲某些數據啓動ajax請求,並且只對響應提交/重定向表單。使用上面的示例會導致請求在提交表單之前未完成。 – 2010-10-16 22:53:47

0

我認爲這將是更好地執行控制器操作查詢外部Web服務的任務。這樣你總是將表單提交給查詢服務的同一控制器動作,並根據結果呈現視圖或重定向到其他某個動作。