隨筆-167  評(píng)論-65  文章-0  trackbacks-0

          最近在rails中驗(yàn)證用戶名唯一性時(shí),使用了原始的xmlHttpRequest時(shí),沒有成功,原因是服務(wù)器端無法response數(shù)據(jù)給客戶端,肯定有解決辦法,但是我目前還沒有解決,于是費(fèi)了點(diǎn)周折使用了rails自帶的ajax方法:observe_field

          實(shí)現(xiàn)效果:用戶一邊輸入用戶名,一邊實(shí)現(xiàn)驗(yàn)證

          image

          實(shí)現(xiàn)過程:

          rhtml:

          <span id="result" ></span>

          <input name="loginname" type="text" id="ctl00_main_content_txtLogin" class="textbox"  style="width:120px;" />

          <%= observe_field(:ctl00_main_content_txtLogin,
            :frequency => 0.2,
            :update => :result,
            :with => 'loginname',
            :url => {:action => :tip }) %>

          說明:

          :with 是傳參,對(duì)應(yīng)是name,而非id

          controller:

          def tip
              name =  params[:loginname]
              if !ClientInfo.validate_login_name(name.to_s).nil?
                render :text=>'該用戶已經(jīng)存在'   
              else
                render :text => ''
              end    
          end

          說明:

          ClientInfo.validate_login_name(name.to_s)是model中驗(yàn)證數(shù)據(jù)的方法

          提示:

          個(gè)人在做的時(shí)候,無法實(shí)現(xiàn)其效果,也不知道原因,折騰了好久才搞定,是通過firebug發(fā)現(xiàn)form is not defiend錯(cuò)誤,然后google解決的,原因是js的:defaults沒有加入,所以建議大家在調(diào)試js時(shí)使用firebug!

          ref:

          http://www.nabble.com/observe_field-gets-%22Form-is-not-defined%22-td4649511.html

          http://apidock.com/rails/ActionView/Helpers/PrototypeHelper/observe_field

          如果想更升入的了解observe_field,提供一個(gè)demo下載:

          http://www.namipan.com/d/7c2280cf8afc1a57dbddf88d9b5962304cd2e91477580100



          write by feng
          posted on 2009-04-28 18:02 fl1429 閱讀(776) 評(píng)論(0)  編輯  收藏 所屬分類: Rails
          已訪問數(shù):
          free counters
          主站蜘蛛池模板: 苏尼特左旗| 伊川县| 安丘市| 武隆县| 剑川县| 铜陵市| 新晃| 内乡县| 丰都县| 鄂温| 南康市| 将乐县| 洛宁县| 招远市| 柘城县| 隆化县| 津南区| 马边| 略阳县| 安国市| 阿克苏市| 库尔勒市| 武鸣县| 洞口县| 平南县| 龙井市| 文山县| 平潭县| 迁安市| 维西| 休宁县| 于田县| 汝南县| 德阳市| 南投县| 木兰县| 海阳市| 漳浦县| 临清市| 厦门市| 乳山市|