2011-07-11 96 views
0

目前我有定義了一個aspx頁面:我怎麼回發到通過JavaScript的MVC控制器動作

<%Using Html.BeginForm("SaveNotifications", "Notifications", FormMethod.Post, New With {.id = "NotificationForm"})%> 
    ... 
        <tr> 
       <td colspan="3"> 
        <input type="submit" id="SaveNotifications" name="SaveNotifications" value="Save" class="t-button" /> 
       </td> 
      </tr> 
     </table> 
     </fieldset> 
    <%End Using %> 

我想改變這讓我輸入按鈕觸發一個javascript函數,這樣我可以對錶單進行一些複雜的驗證,然後發送給控制器。

我改變了我的提交按鈕:

<input type="submit" id="SaveNotifications" name="SaveNotifications" value="Save" class="t-button" onclick="onSave(); return false;" /> 

中。OnSave()方法將火而不是回發到控制器。

控制器被定義爲:

<HttpPost()> _ 
    <MultiButton(MatchFormKey:="SaveNotifications", MatchFormValue:="Save")> _ 
    Function SaveNotifications(ByVal NotificationForm As FormCollection) As ActionResult 
    ... 
    End Function 

如何改變此設置的JavaScript火災,跑我的驗證,然後點擊此控制器行動?

感謝

回答

1

更改您的提交按鈕

<input type="submit" id="SaveNotifications" name="SaveNotifications" value="Save" class="t-button" onclick="return onSave();" />

然後在JavaScript的onSave()函數,根據不同的驗證返回true或false。

function onSave() 
{ 
    var isValid = true; 
    // ... do your validation ... 

    // ie: 
    // if (field1.value.length == 0) 
    //  isValid = false; 


    // returning true will post the form. False will halt it. 
    return isValid; 
} 
+0

如果提交按鈕沒有指向onSave()的onclick事件,javascript會如何觸發? –

+0

好了,只是不要「返回假」。 –

+0

正確 - 編輯我的答案,更清晰一點。那麼,你仍然從onClick返回true或false,但是這是在onSave函數中計算的。 – Leniency

相關問題