果然睡過一覺後,再來看這問題,就這樣出現曙光!解決此問題。
(昨天是連有篇解答在前面,還是看不懂它怎麼寫)
解答:說明了Client Side Validate 的原理
http://blog.darkthread.net/post-2011-08-02-unobtrusive-jq-vald-dynamic.aspx
(它寫到動態加入Control並可以驗証,"data-val-number"/"data-val-required")
我的最後結果圖:
經歷過程:
因這查詢頁面是 User Control (ascx)
所以於主頁面,動態加入這個Control 元件,
若是用正規的 Html.Partial(~~)寫法,是可以觸發它的 Client Side Validate。
(但它載入的時間順序,難控制,變成我User Control 要用的 ViewBag全都要在Index準備好~)
後來改寫成用動態載入的方式寫:
//初始元件:載入查詢元件
$("#queryControl").load('<%:Url.Action("RejectQuery") %>', function () {
});
再來問題就出現了!
我無法再有Client Side Validate 功能,直接post 到Controller 做事情。
這個問題,我找了一天 @@
其實,應去了解它Client Side Validate 機制做法,
它是透過以下來達成的:
而黑大就寫:
「以此推論,除非form本身尚未建立.data(“validator”),否則呼叫.validate(options)不會有任何效果。但在jquery.validate.unobtrusive.js中,網頁載入時就已對既有
所以就是:
先Remove form 的 validator,再重新自已加入。
所以在 ascx 下直接寫:
$(function () {
$("form").removeData("validator");
$.validator.unobtrusive.parse("form");
});
最後就可以驗証了!!
至於「"data-val-number"/"data-val-required"」這類東西
可再參考:
http://blog.darkthread.net/post-2011-07-27-unobtrusive-jquery-validation.aspx
(昨天是連有篇解答在前面,還是看不懂它怎麼寫)
解答:說明了Client Side Validate 的原理
http://blog.darkthread.net/post-2011-08-02-unobtrusive-jq-vald-dynamic.aspx
(它寫到動態加入Control並可以驗証,"data-val-number"/"data-val-required")
我的最後結果圖:
經歷過程:
因這查詢頁面是 User Control (ascx)
所以於主頁面,動態加入這個Control 元件,
若是用正規的 Html.Partial(~~)寫法,是可以觸發它的 Client Side Validate。
(但它載入的時間順序,難控制,變成我User Control 要用的 ViewBag全都要在Index準備好~)
後來改寫成用動態載入的方式寫:
//初始元件:載入查詢元件
$("#queryControl").load('<%:Url.Action("RejectQuery") %>', function () {
});
再來問題就出現了!
我無法再有Client Side Validate 功能,直接post 到Controller 做事情。
這個問題,我找了一天 @@
其實,應去了解它Client Side Validate 機制做法,
它是透過以下來達成的:
而黑大就寫:
「以此推論,除非form本身尚未建立.data(“validator”),否則呼叫.validate(options)不會有任何效果。但在jquery.validate.unobtrusive.js中,網頁載入時就已對既有
所以就是:
先Remove form 的 validator,再重新自已加入。
所以在 ascx 下直接寫:
$(function () {
$("form").removeData("validator");
$.validator.unobtrusive.parse("form");
});
至於「"data-val-number"/"data-val-required"」這類東西
可再參考:
http://blog.darkthread.net/post-2011-07-27-unobtrusive-jquery-validation.aspx
0 意見 :
張貼留言