用Rails的Ajax实现注册时的用户名检测

    严格的说不应该是Rails的Ajax,因为Rails内建了prototype这个JavaScript库,里面封闭了处理Ajax 的函数。

   所以你要在用到Ajax的 rhtml文件的<head>中加入

<%= javascript_include_tag  "prototype" %>      

这句代码来导入prototype.js文件

 

下面是注册用的 reg.rhtml文件,这里只写了一个名字字段

<div id="ajaxdiv"></div>         //显示Ajax回显的地方

<%= form_tag (:action => "reg_save")%>


      <%= text_field (:user, :name)%><br>      //输入用户名的地方
      
      <%= observe_field ("user[name]",
                         :frequency => 0.5,
                         :update => "ajaxdiv",
                         :url => {:action => "check_name"})%>

关键就是这里了,observe_field--观察字段, 第一个属性("user[name]")是我们要观察字段的名字,以每隔frequency秒的频率进行观察,它会将观察的内容作为POST数据传给指定的action(我们这里是check_name),最后action处理的结果会在updata指定的地方出现(这里是ajaxdiv).
     
    
      <%= submit_tag "Sumbit"%>
<%= end_form_tag%>

 

下面是check_name这个action

def check_name
       @user=User.find_by_name(request.raw_post)

     这里是在数据库中有了users这个表,并在raisl建立了User这个模型(Models,也就是MVC中的M).

     request.raw_post是上面那个observe_field观察后提交的信息,也就是文本框中的内容


       if @user
         @result="Exist"
       else
         @result="Available"
       end


     end

check_name.rhtml比较简单 只是把@result显示一下就行了

<%= @result%>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值