2013-03-24 61 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参数之间存在差异。