2012年11月8日 星期四

jQuery Validation Plugin 1.9 預設忽略 hidden elements 的檢核

今早要實作一個功能,需要使用 ASP.NET MVC 的 HiddenFor 對 Model 作 validation,卻發現沒有作用?

我首先是在 VS2012 上使用 MVC4 作的。

Model

public class TestModel
  {
    [Required]
    public string Name { get; set; }
  }
 
 

而 cshtml 也是異常的簡單

@model MvcApplication2.Models.TestModel

@{
        ViewBag.Title = "TestHidden";
}

@using (Html.BeginForm()) {
        @Html.ValidationSummary(true)

        <fieldset>
                <legend>TestModel</legend>

                <div class="editor-label">
                        @Html.LabelFor(model => model.Name)
                </div>
                <div class="editor-field">
                    @Html.HiddenFor(m => m.Name)
                        @Html.ValidationMessageFor(model => model.Name)
                </div>

                <p>
                        <input type="submit" value="Create" />
                </p>
        </fieldset>
}

<div>
  @Html.ActionLink("Back to List", "Index")
</div>
@section Scripts{
  @Scripts.Render("~/bundles/jqueryval")
}

然而,ASP.NET MVC validation 就是不會檢查。

怪的是,同樣地程式碼,使用 ASP.NET MVC 4 在 VS2010 上卻會檢查??

比較兩方的差異,除了 .net framework 版本不同之外,就是 javascript library 的版本不同了。

再 check 一下,發現只要把 jQuery validation 1.9 換成 1.8 的版本,就正常了。Bingo!!

原來在 jQuery validation 1.9 release note 上有提到

Another change should make the setup of forms with hidden elements easier, these are now ignored by default (option “ignore” has “:hidden” now as default).

所以,不管是 <input type=’hidden’ />, 或者是 <input style=’display:none’ /> 都不再會被檢核。

那要如何在 jQuery validation 1.9 上運作正常呢?幸好還是有解的

$.validator.setDefaults({ ignore: [] });

20121120 附註:

在:hidden 的區塊中,以 jQuery 使用 data 設定 data-val 屬性並沒有作用。試驗的結果,必須使用 $(selector).attr(‘data-val’, false) 來動態開啟/關閉 jQuery validation 對單一輸入的檢核。

2012年11月2日 星期五

換了 SSD 之後,一切都順多了

image

如上圖。這是我從公司內部網路複製大檔案時的狀況。注意到瓶頸應該是網卡,所以右方的 Network 到達了 98%。

而檔案的複製速度(左方)應該是維持水平。這樣才是正常的。

在換 SSD 之前,瓶頸竟然是 Disk??

討論見 http://www.plurk.com/p/he6xm9 

建議有相同問題的苦主都應該去換換。

SNAGHTML37aafde

在 同一SSD 間複製大檔案,也應該有不錯的寫入速度。

Share with Facebook