`
yezi
  • 浏览: 279429 次
  • 来自: 北京
社区版块
存档分类
最新评论

Rails之Ajax---remote-function

阅读更多
Ruby on Rails宣称自己对web2.0技术的支持是很彻底的,其中对于ajax的使用,更是声称是业界领先的,下面就对其中的一些功能进行学习和实践。

在web的一个很普通的应用里面,有一个需要使用到ajax来提升用户体验的方法,比如,在用户注册的时候,当用户填写登录名称时,系统可以自动判定用户填写的注册名是否已经被使用,我们可以通过下面的方法来实现。

首先是rhtml
<%= form_tag %>
    <input id="user_user_name" name="user[user_name]" 
        size="40" onblur="if(this.value!=''){
        <%= remote_function(:update=>'result', :url=>{:action=>:isok},:with=>"{user_name:Field.getValue('user_user_name')}")%>;}"></input>
        
        <div id="result"></div>
        
        <br><%= submit_tag("submit")%>
<%= end_form_tag%>


这里应该注意的是,在rhtml中添加ruby对ajax的支持
<%= javascript_include_tag "prototype" %>


刷新浏览器,看看生成的源代码:
<form action="/ajax" method="post">
    <input id="user_user_name" name="user[user_name]" 
        size="40" onblur="if(this.value!=''){
        new Ajax.Updater('result', '/ajax/isok', {asynchronous:true, evalScripts:true, parameters:{user_name:Field.getValue('user_user_name')}});}"></input>
        
        <div id="result"></div>
        
        <br><input name="commit" type="submit" value="submit" />
</form>


我们可以看到,通过remote_function的使用,html应用了 property中的new ajax方法,第一个参数是更新的区域(div),第二个参数是调用的action,这里需要重点记录一下第三个参数的写法,正是通过这个参数,才将用户在页面上填写的用户名传输到后台,这样就可以针对用户名是否存在进行校验了。

rhtml中是通过:with参数才实现的,这个参数是remote_function中option中的一个,是用来生成html中的parameters的,可以看到,冒号的前面是要传递的参数名,而后面则是页面上用户输入的值,Field.getValue('user_user_name')通过这个方法,可以取到form中id为user_user_name的input的值。

下面看一下controller:
def isok
    user_name=params[:user_name]
    render_text user_name
  end

代码很简单,通过参数取到用户输入的值,就可以进行相应的处理了。
分享到:
评论

相关推荐

    Ajax-rails-ajax-demo.zip

    Ajax-rails-ajax-demo.zip,ruby on rails的ajax演示项目,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在不重新加载网页的...

    Ajax-Rails-4-AJAX-Form.zip

    Ajax-Rails-4-AJAX-Form.zip,rails 4 ajax表单示例,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在不重新加载网页的情况下...

    Ajax-Rails-4-AJAX-modal-form-render-JS-response-as-table-row.zip

    Ajax-Rails-4-AJAX-modal-form-render-JS-response-as-table-row.zip,rails 4 ajax模式表单将js响应呈现为表行,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于...

    Ajax-rails-travel-app.zip

    Ajax-rails-travel-app.zip,网络应用程序,允许你跟踪,评分,并审查你已经采取的旅行。注意:repo包含多个分支,具有原始rails版本,并使用jquery前端更新了应用程序。,ajax代表异步javascript和xml。它是多种web...

    rails-dev-box, 面向 Ruby on Rails 核心开发的虚拟机.zip

    rails-dev-box, 面向 Ruby on Rails 核心开发的虚拟机 用于 Ruby on Rails 核心开发的虚拟机简介注意:这个虚拟机不是为 Rails 应用程序开发而设计的,只是为。 这个项目自动设置开发环境,以便在 Ruby on Rails ...

    Ajax-ajax-datatables-rails.zip

    Ajax-ajax-datatables-rails.zip,datatable的ajax方法的包装器,允许在rails应用程序中与服务器端分页同步,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建...

    rails-documentation-2-0-2

    rails-documentation-2-0-2

    rails-beginner-s-guide

    rails-beginner-s-guide是Rails 指导手册,帮组学习了解rails开发

    sclo-ror42-rubygem-rails-html-sanitizer-1.0.3-1.el7.noarch.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    rails-chm-2-0-2.rar

    `rails-documentation-2-0-2.chm` 文件详细涵盖了这些概念,包含了关于Rails 2.0.2的API参考、教程和指南。通过仔细阅读和实践,开发者能够深入理解Rails的工作原理,并有效地开发出高效、可维护的Web应用。

    rails应用--导航栏实例工程

    在本项目"rails应用--导航栏实例工程"中,我们将探讨如何在Ruby on Rails框架下构建一个实用的导航栏。Rails是一个流行的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,使得开发过程更加高效且结构...

    Ajax-rails-ranger.zip

    Ajax-rails-ranger.zip,rubyonrailsapi的自以为是ajax客户端,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在不重新加载网页...

    rails-2.1.0-gem

    "rails-2.1.0-gem"是Rails框架的一个特定版本,即2.1.0的gem包,用于在Ruby环境中安装和管理Rails框架。 Rails的核心理念是“约定优于配置”(Convention over Configuration),这意味着开发者可以遵循一套预设的...

    rails-dev-box:用于Ruby on Rails核心开发的虚拟机

    用于Ruby on Rails核心开发的虚拟机 介绍 请注意,该虚拟机并非为...host $ cd rails-dev-box host $ vagrant up 而已。 安装完成后,您可以使用以下命令访问虚拟机: host $ vagrant ssh Welcome to Ubuntu 20.10

    rails-react-components-源码.rar

    本文将深入探讨"rails-react-components-源码.rar"中的关键知识点,帮助开发者理解如何在Rails应用中集成React组件。 1. **React组件化开发** React的核心概念是组件,它允许我们将UI拆分为独立、可重用的部分。在...

    rails-ftw-v0.18-2.1.5-4.1.8

    rails-ftw-v0.18-2.1.5-4.1.8.exe用于在windows环境下搭建readmine环境

    rails-documentation-1-2-0-rc1.chm

    rails-documentation-1-2-0-rc1.chm

    rails-documentation-1-2-1.zip

    标题 "rails-documentation-1-2-1.zip" 暗示这是一份关于 Ruby on Rails 框架的文档,版本为 1.2.1。Ruby 是一种面向对象的编程语言,而 Rails 是一个基于 Ruby 的开源 Web 应用程序框架,遵循 Model-View-...

    Rails-4-AJAX-Form:Rails 4 AJAX表单示例

    总结一下,Rails 4中的AJAX表单通过`remote: true`选项简化了前端与后端的通信,使我们能够创建无刷新的交互体验。通过在控制器中处理AJAX请求并编写相应的JavaScript响应,可以实现动态更新页面的效果。在实际项目...

    rails-development-environment-master.rar

    标题 "rails-development-environment-master.rar" 暗示这是一个关于Ruby on Rails开发环境的压缩包。Rails是基于Ruby语言的一个开源Web应用框架,遵循MVC(Model-View-Controller)架构模式,广泛用于构建数据库...

Global site tag (gtag.js) - Google Analytics