單純的找個地方po目前的jquery plugin列表,有沒有人也想貼的:P,以下附加一點點解釋,單純的寫case寫煩了上來抒發一下
複製內容到剪貼板
代碼:
jQuery #=> 略,換了1.4.2了,全部沒噴,jQuery的向下相容真不錯
jQuery ui #=> 略...我想它很有名
jQuery asmselect #=> 目前未用,多選欄位,不過擴充性有點小,後來是自己做template和clone的X"D
jQuery autocomplete #=> 輸入框自動搜尋符合的字串....結果後來被我改成讀取靜態檔案來做高度快取了X"D,目前用於地址輸入尋找
jQuery autogrow #=> textarea自動長高....用於form
jQuery base64 #=> base64的編碼轉換,用於iframe傳值
jQuery cookie #=> 讀取寫入cookie,目前用於暫存
jQuery cycle #=> 未用,單格跑馬燈,擴充性太低(只有單格,我需要list的)
jQuery frameReady #=> 使用iframe call的時候很好用,因為可以等待frame讀取結束後再進行相關動作
jQuery getUrlParam #=> 跨domain的iframe的傳值很好用,配合base64就可以達到簡易的防破解
jQuery jcarousel #=> 旋轉木馬,跑馬燈用,配合mousewheel一整個順暢
jQuery jgrowl #=> 配合stickies plugin使用(自己改寫的||),不佔版面的提示泡泡
jQuery json #=> json轉換操作
jQuery lightbox #=> 未用,後來全換prettyPhoto了
jQuery marquee #=> 未用,裝可愛的文字跑馬燈
jQuery menu #=> 主要用於下拉選單,到處放到處都可以call
jQuery mousewheel #=> 純配合jcarousel旋轉木馬用,可以用中鍵捲軸控制旋轉木馬
jQuery prettyPhoto #=> 目前用最多的媒體瀏覽,包括圖片和Flash
jQuery tablednd #=> 未用,動態變動排序,常用的是UI內的sortable
jQuery tooltip #=> 主要用於提示,滑鼠移上去出現提示框那種
jQuery treeview #=> 樹狀,後來未用,用自己code的css tree
jQuery uploadify #=> 配合falsh達到多檔上傳
jQuery validate #=> 選單驗證,功能強大但有點複雜,下面是我的demo
jScroller #=> 除了旋轉木馬外的跑馬燈,簡單但容易用
ajaxupload #=> 支援IE的單檔上傳,補足uploadify的不支援,目前用於uploadify無法使用的狀況(判定是否為IE)
swfobject #=> 可以讓你很隨便的控制Flash物件...新版的謎物有使用X"D上面的東西很多都很有趣,而我的case內因為跨domain還有key的問題,需要跨domain的傳值(無法使用JavaScript),所以就需要一堆東西的配合之類的:P
okay~ 上面的東西大概找一下都可以找到demo之類的東西,而找不太到且很麻煩的應該是下面這個,今天開始玩的,jQuery Validate的demo for Rails,以下全使用jGrow,一般字串的話這套件的官方說明有就是了:P,用這個的話可以節省兩倍左右的check code唄,&如果form無法傳出去的話,請檢查你的remote的AJAX時有沒有404或500之類的,remote錯誤會不給按submit的
複製內容到剪貼板
代碼:
$("#user_register").validate({
validClass: "ok",
errorClass: "no",
onkeyup: false,
rules: {
"user[login]": {
required: true,
minlength: 4,
maxlength:40,
remote:"/users/account_check/0"
},
"user[nick_name]":{
required:true,
minlength:2
},
"captcha":{
required:true,
minlength:6,
maxlength:6,
remote:"/users/captcha_check/0"
},
"user[password]":{
required:true,
minlength:6
},
"user[password_confirmation]":{
required:true,
minlength:6,
equalTo: "#user_password"
},
"user[email]":{
required:true,
email:true,
remote:"/users/mail_check/0"
},
"readme_check":{
required:true
}
},
messages: {
"user[login]": {
required:function(){$.jGrowl("請輸入帳號", {life: 3000,theme: "warning"});},
minlength:function(){$.jGrowl("輸入的帳號,最少4個字元", {life: 3000,theme: "warning"});},
maxlength:function(){$.jGrowl("輸入的帳號,最多40個字元", {life: 3000,theme: "warning"});},
remote:function(){$.jGrowl("抱歉,此帳號已被使用,請嘗試使用其他帳號", {life: 3000,theme: "warning"});}
},
"user[nick_name]":{
required:function(){$.jGrowl("請輸入暱稱", {life: 3000,theme: "warning"});},
minlength:function(){$.jGrowl("暱稱請大於兩字元", {life: 3000,theme: "warning"});}
},
"captcha":{
required:function(){$.jGrowl("請輸入檢核碼,檢核碼為0~9與A-F之組合", {life: 3000,theme: "warning"});},
minlength:function(){$.jGrowl("請輸入檢核碼,檢核碼為0~9與A-F之組合,並且為6字元", {life: 3000,theme: "warning"});},
maxlength:function(){$.jGrowl("請輸入檢核碼,檢核碼為0~9與A-F之組合,並且為6字元", {life: 3000,theme: "warning"});},
remote:function(){$.jGrowl("抱歉,檢核碼輸入錯誤,請嘗試重新輸入", {life: 3000,theme: "warning"});}
},
"user[password]":{
required:function(){$.jGrowl("請輸入密碼,並且為六字元以上", {life: 3000,theme: "warning"});},
minlength:function(){$.jGrowl("請輸入密碼,並且為六字元以上", {life: 3000,theme: "warning"});}
},
"user[password_confirmation]":{
required:function(){$.jGrowl("請輸入確認密碼", {life: 3000,theme: "warning"});},
minlength:function(){$.jGrowl("請輸入確認密碼,並且為六字元以上", {life: 3000,theme: "warning"});},
equalTo:function(){$.jGrowl("請輸入確認密碼,並等於密碼", {life: 3000,theme: "warning"});}
},
"user[email]":{
required:function(){$.jGrowl("請輸入E-Mail信箱", {life: 3000,theme: "warning"});},
email:function(){$.jGrowl("E-Mail請輸入正確的格式", {life: 3000,theme: "warning"});},
remote:function(){$.jGrowl("此信箱已被註冊,煩請使用其他的信箱", {life: 3000,theme: "warning"});}
},
"readme_check":{
required:function(){$.jGrowl("請同意並勾取使用者條款之後再送出註冊表單", {life: 3000,theme: "warning"})}
}
},
invalidHandler: function(e, validator) {
if (validator.numberOfInvalids()) {
$.jGrowl("你有" + validator.numberOfInvalids() + "個欄位的數值需要修正,煩請修正後再進行送出的動作", {life: 3000,theme: "warning"});
}
},
submitHandler: function(form) {
$.jGrowl("註冊表單已送出,感謝您的註冊", {life: 3000,theme: "notice"});
form.submit();
}
})而有用remote的地方Rails的check code像是這樣即可,json的true or false
複製內容到剪貼板
代碼:
def captcha_check
if captcha_is_okay?(params[:captcha])
render :json => true
else
render :json => false
end
end