發新話題
打印

jQuery plugin列表...... + jQuery Validate DEMO

jQuery plugin列表...... + jQuery Validate DEMO

單純的找個地方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
(Plurk) 人因夢想而偉大,如果沒有信仰,則將一無所有,持續往殉道的路邁進,獻祭著自己的靈魂,走著最極端的路;而那迷霧的後面,會是地獄,也是天堂
self.attributes #=> [惡搞之魂,貓化身,怪咖吸鐵石,邪道程式設計師,動漫宅,蘿莉控,惡趣味,Geek,H=F^3]
[82,117,98,121,32,79,110,32,82,97,105,108,115,32,105,115,32,77,121,32,76,105,102,101].map{|l|l.chr}.to_s

TOP

發新話題