2012年10月26日 星期五
Stat Counter
http://gs.statcounter.com/ 列出了我們軟體業界常常在問的趨勢。
例如 「行動裝置」比一般電腦使用率更高了嗎?結果是還差的很遠http://gs.statcounter.com/#mobile_vs_desktop-ww-monthly-201109-201209
Windows 7 很普及了嗎?是
http://gs.statcounter.com/#os-ww-monthly-201109-201209
甚至可以看到台灣區的瀏覽器版本。(IE 6.0 只剩1.06% 的使用率)
http://gs.statcounter.com/#browser_version-TW-monthly-201109-201209
是一個不錯的網站
2012年10月15日 星期一
ASP.NET MVC unobtrusive Cheat Sheet
需要一個 client side 的 JavaScript validation library. 而使用 ASP.NET MVC 當然最好使用 jQuery.validate.unobtrusive.js,雖然還是有一點不好用啦!
然而每次都要到 google 找資料也是很累,不如自己做一個清單好了。
值 | 說明 | ||
data-val | true, false | 是否要驗證 | |
長度限制 | data-val-length | 字串 | 字串長度不符合時的錯誤訊息 |
data-val-length-max | 整數 | 字串最大長度 | |
data-val-length-min | 整數 | 字串最小長度 | |
必填 | data-val-required | 字串 | 未填入時的錯誤訊息 |
RegEx | data-val-regex | 字串 | 錯誤訊息 |
data-val-regex-pattern | 字串 | regex | |
數字 | data-val-digits | 字串 | 錯誤訊息。只接受數字字元。 |
data-val-number | 字串 | 錯誤訊息。只接受數字(正負) | |
日期 | data-val-date | 日期 | 錯誤訊息。只接受日期。 |
data-val-email | 字串 | 錯誤訊息 | |
Url | data-val-url | 字串 | 錯誤訊息 |
範圍 | data-val-range | 字串 | 錯誤訊息 |
data-val-range-min | 整數 | ||
data-val-range-max | 整數 | ||
比較 | data-val-equalto | 字串 | 錯誤訊息 |
data-val-equalto-other | 驗證項目的name | ||
驗證訊息 | data-valmsg-for | 驗證項目的name | 驗證訊息 |
附檔名限制 | data-val-accept | 字串 | 錯誤訊息 |
data-val-accept-exts | 字串 | Ex: “jpg|gif|png” |
範例見黑大的 使用jQuery.validate.unobtrusive.js
動態驗證的 JavaScript
self.save = function() { var form = $('#editForm'); form.removeData("validator"); $.validator.unobtrusive.parse(form); form.validate(); if (form.valid()) { var url = form.attr('action'); var postData = form.serialize() + "&field1=" + self.field1(); $.post(url, postData, function(data) { if (data.IsOk) { alert("已儲存"); } else { alert(data.Message); } }); } };
2012年10月11日 星期四
[Knockout] 解決 radio checked binding,radio button 老是要按兩次才能選取的的問題
這次問題的過程比較難以描述。
初始問題
問題 sample 如下
http://jsfiddle.net/CharlesLin/X2a5P/
當點選 radio button 時,一開始會點不順利,直到每點過一次以才會正常.
checked 只能 binding 到 string
查詢http://knockoutjs.com/documentation/checked-binding.html 中有提到下面這一段敘述
•For radio buttons, KO will set the element to be checked if and only if the parameter value equals the radio button node’s value attribute. So, your parameter value should be a string
意思是:當使用 checked 繫結時,必須是 string 才有用.
所以,就有了第二個版本:把 Id 改成 string
http://jsfiddle.net/CharlesLin/X2a5P/3/
這樣子就正常了.
我的解法
然而,將 Id 改型別是不合常理的。通常這些資料都是從伺服器端來的,並非我們能控制。最好在 client 能夠正常運作。
最後,只能修改 binding
http://jsfiddle.net/CharlesLin/X2a5P/4/
將 value 改成字串。改正 one-way binding 不影響此處值的顯示。
如此就符合我的需求了
2012年10月8日 星期一
Knockout.js
這是一個關於 Knockout.js 的 sample code 及 投影片。
個人對於 knockout.js 的未來潛力相當看好,是一個可以與 jQuery 爭輝的 JavaScript Library。
Sample Code 及投影片可以到這裡下載。