2013-11-28 56 views
2

在MVC 4中進行客戶端驗證我正在構建基於ASP.NET MVC 4的應用程序,並儘可能遵循標準Internet模板中的代碼。使用jQuery 1.10.2

昨天我開始實施我的表格,並注意到我沒有得到客戶端驗證,並且總是提交內容。

我呈現的形式是這樣的:

@using (Html.BeginForm(new { ReturnUrl = ViewBag.ReturnUrl })) 
{ 
    @Html.AntiForgeryToken() 
    @Html.ValidationSummary(true) 

     <ul> 
      <li> 
       @Html.LabelFor(m => m.Title) 
       <br /> 
       @Html.TextBoxFor(m => m.Title) 
       <br /> 
       @Html.ValidationMessageFor(m => m.Title) 
      </li> 
      <li> 
      //more list items here 

因爲我沒有與調試開始我使腳本如下:

@Scripts.Render("~/Scripts/jquery-1.10.2.min.js") 
@Scripts.Render("~/Scripts/jquery.validate.min.js") 
@Scripts.Render("~/Scripts/jquery.unobtrusive-ajax.min.js") 
@Scripts.Render("~/Scripts/jquery.validate.unobtrusive.min.js") 

然後,在螢火,當我提交一個不正確的表單我得到以下錯誤:

TypeError: a(...).live is not a function 

然後我看到這個 - Also bear in mind that in jQuery 1.9 the .live() method has been removed which was one of the breaking changes另一個SO問題here。所以我決定嘗試將jQuery版本更改爲:

@Scripts.Render("~/Scripts/jquery-1.7.1.min.js") 

並且驗證開始正常工作。

一些進一步的研究表明,大多數人爲了使其與jQuery的新版本配合使用而製作了自定義的jQuery.val*腳本。

我的問題是 - 是否有客戶端驗證的標準打包/捆綁包,我可以添加到我的項目中並使用更新版本的jQuery(我現在使用的版本是1.10.2)?我是否需要爲我的客戶端驗證部分使用jQuery 1.7.*,或者現在MS(如使用knockout.js這是標準模板的一部分進行驗證)或者甚至可能還有其他用於MVC項目中客戶端驗證的js庫?

回答

2

我遇到類似的1.10.2(我會得到「Uncaught SyntaxError:Unexpected token u」)的jQuery驗證問題。我添加了jQuery.Migrate包,並修復了它。我相信這個錯誤來自於parseJSON的改變。

相關問題