2013-03-24 108 views
0

我有以下形式:處理表單提交事件

@using (Html.BeginForm(new { ReturnUrl = ViewBag.ReturnUrl, @class = "form-vertical login-form", id = "loginform" })) 

        <button type="submit" class="btn green pull-right"> 
         Login <i class="m-icon-swapright m-icon-white"></i> 
        </button> 

} 

這的JavaScript處理事件功能

$(document).ready(function() { 

      $("#loginform").submit(function() { 
       alert('Handler for .submit() called.'); 
       return false; 
      }); 
} 

然而,這並不在所有的工作。

警報從未觸發

+3

看看生成的來源,你會開悟。 – SLaks 2013-03-24 14:04:42

+0

既然你知道只有一種形式,只需使用'$(「form」)。submit(...);' – 2013-03-24 14:06:08

+0

@ShadowWizard,什麼讓你認爲只有一種形式? – 2013-03-24 14:09:09

回答

3

這是正常的,你永遠不分配您的形式idclass。查看瀏覽器中生成的HTML,瞭解我的意思。

您正在使用BeginForm幫助程序的完全錯誤的超載。

試試這個:

@using (Html.BeginForm(null, null, new { returnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = "form-vertical login-form", id = "loginform" })) 
{ 
    <button type="submit" class="btn green pull-right"> 
     Login <i class="m-icon-swapright m-icon-white"></i> 
    </button> 
} 

現在,請閱讀MSDN上的不同BeginForm重載與mine比較yours

如您所見,routeValues參數與htmlAttributes參數之間存在差異。