果然睡過一覺後,再來看這問題,就這樣出現曙光!解決此問題。
(昨天是連有篇解答在前面,還是看不懂它怎麼寫)
解答:說明了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
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_utyLzq6FIF9uG-R0oEme8AuWp2aB_eBv6qO8iMSgqBSEuz5qFaUdPXUVDbuMtE4_DinPRLCnkZDp8HzOblmcozMfiz4SQm0nEnpAyj9R6IpHJw0gdahCvHoeTfxbBLxKVdtENWNpYyag=s0-d)
(昨天是連有篇解答在前面,還是看不懂它怎麼寫)
解答:說明了Client Side Validate 的原理
http://blog.darkthread.net/post-2011-08-02-unobtrusive-jq-vald-dynamic.aspx
(它寫到動態加入Control並可以驗証,"data-val-number"/"data-val-required")
我的最後結果圖:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH6Pevj1XTTEFf0HJNk6n8yznkI_IymXMIvWeHRhAS9eeNyGxH0D_2ZOFkZQLwvXCdfQh0LopCeB9C6jnwsrPzGwEzMPaIZvFxkLIM97OXq70hQj6L3kSCXbCpBEks_5XB7sax8j2AYrlz/s1600/2012-12-7+%E4%B8%8A%E5%8D%88+11-58-05.png)
經歷過程:
因這查詢頁面是 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 意見 :
張貼留言