`

rails3 jquery ajax

阅读更多

rails3中使用非form提交的ajax操作,这里使用的js框架为jquery

 

html(views/users/index.html.erb):

<%= link_to "ajax_update", ajax_update_user_path(user), :id => "ajax_update_" + user.id.to_s %>

这里没有使用rails.js里面的:remote

 

js(views/users/index.html.erb):

<script type="text/javascript">
  $(function(){
    $('a[id^="ajax_update_"]').click(function(){
      $.post(this.href + ".js", null, function(data) {
        if (data.result == "success") {
          alert("修改成功");
        }
      }, "json");
      return false;
    });
  });
</script>

(1)如果post的dataType设置的是"json",ajax回调的数值格式必须是json的数据格式。否则,回调函数不会被激活。

(2)如果dataType设置的是"script",则返回客户端的是一个可执行的script代码

 

rails(controllers/users_controller.rb):

  def ajax_update
    @user = User.find_by_id(params[:id]) 
    respond_to do |format|
      if @user.udpate_attribute(:xxx, "1")
        format.js  { render :json => {:result => "success"}, :layout => false }
      else
        format.js  { render :json => {:result => "error"}, :layout => false }
      end
    end
  end

 返回结果设置成json格式。

在组织成json数据格式的时候,有一点区别。

(1)如果写成这样 :json => "success", ajax 调用后能返回结果,但没有激活ajax success的回调函数

(2)如果写成这样 :json => params[:id], ajax调用后能返回结果,也激活ajax success的回调函数

返回字符串“success”不符合json的格式,没有引起回调。返回params[:id]是一个数值,也不符合json格式,却引起了客户端的回调。很怪异。。。也没有找到具体的原因

 

 

 

分享到:
评论

相关推荐

    Ajax on Rails

    在Rails早期版本中,经常使用jQuery库来增强Ajax功能。jQuery简化了DOM操作和事件处理,并提供了`$.ajax()`、`$.get()`和`$.post()`等方法来发起Ajax请求。Rails可以通过`gem 'jquery-rails'`添加对jQuery的支持,并...

    Rails3-使用ajax处理并发

    首先,Rails 3引入了Unobtrusive JavaScript (UJS)的概念,这是一种与JavaScript库(如jQuery)解耦的策略,使得添加Ajax功能变得更加简单。通过在链接或表单元素上添加特定的数据属性(如`data-remote="true"`),...

    ajax-rails

    3. **JQuery-ujs驱动**:Rails默认集成了jQuery库,JQuery-ujs驱动为Rails提供了与Ajax交互的桥梁。它监听带有`data-remote`属性的元素,并处理Ajax请求和响应。 4. **Ajax请求的生命周期**:在Rails中,一个Ajax...

    在Ruby on Rails中使用AJAX的教程

    在Ruby on Rails框架中,AJAX(异步JavaScript和XML)的使用极大地提升了用户体验,因为它允许在不刷新整个页面的情况下更新内容。Rails通过内置的Prototype.js库简化了AJAX的集成,使得开发者可以快速创建富互联网...

    Jquery AutoComplete firefox 中文 Ajax (option url or data) Jquery rails 自动完成

    6. **Rails集成**:jQuery AutoComplete与Ruby on Rails框架的集成,通常涉及到控制器处理Ajax请求,返回JSON数据,以及在视图中设置jQuery插件配置。可能还需要使用`unobtrusive JavaScript`来实现Ajax请求的无刷新...

    RailsAjaxCRUD:使用 jquery ajax 执行所有 CRUD 操作的 Rails 4 应用程序

    Rails 4 jquery Ajax 示例 ###演示 这是一个如何使用ajax进行CRUD操作的小示例。 安装它 git clone :sagarjunnarkar/RailsAjaxCRUD.git cd RailsAjaxCRUD 捆绑安装 配置 config/database.yml 耙数据库:设置 ...

    Ruby Rails 3 Linda

    10. **Ajax与JavaScript**:Rails与jQuery集成良好,可以方便地实现异步请求。学习如何使用`remote: true`选项创建Ajax链接和表单,以及使用Unobtrusive JavaScript(UJS)驱动JavaScript行为。 11. **Caching**:...

    Ruby on Rails中jquery_ujs组件拖慢速度的问题解决

    综上所述,解决Ruby on Rails中jquery_ujs组件拖慢速度的问题,关键在于利用CSS3的`pointer-events`属性配合JavaScript,确保在页面完全加载后再使AJAX交互生效。这样的解决方案既保持了Rails的便利性,又解决了在...

    Apress,.Beginning.Google.Maps.Applications.with.Rails.and.Ajax.

    书中会讲述如何使用JavaScript库(如jQuery)来实现Ajax请求,并与Rails后端进行通信。 此外,书中可能还会涉及以下知识点: 1. 地理编码和反向地理编码:将地址转换为经纬度坐标(地理编码),以及反过来将坐标...

    jquery-treetable-ajax-example:带有 D&D 支持的 AJAXified jQuery treeTable 表的 Ruby on Rails 示例

    jQuery treeTable AJAX 示例此示例演示了将 jQuery treeTable 插件 ( ) 用于启用 AJAX 的树。 它在服务器端使用 Ruby on Rails 和 SQLite。 文件 app/views/nodes/index.html.erb 包含有趣的 Javascript 位。 当节点...

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

    为了确保AJAX请求正常工作,还需要在`application.js`中引入jQuery库,因为Rails默认使用jQuery进行AJAX操作: ```javascript //= require jquery //= require turbolinks //= require_tree . ``` Turbolinks是...

    rails-4-ajax-crud-via-jquery:如何通过jQuery在Rails 4中进行Ajax Crud的示例应用程序

    这是一个示例应用程序,说明如何通过jQuery在Ajax Crud 4中进行操作。 我们利用$ .getJSON和$ .ajax进行AJAX。 我们没有使用不引人注目JavaScript或模板。 应用程序的根发送到静态控制器的index操作。 因此,请...

    CoffeeScript Programming with jQuery, Rails, and Node.js.pdf 下载

    根据给定的文件信息,我们可以提炼出以下关于CoffeeScript编程与jQuery、Rails及Node.js的知识点: ### 一、CoffeeScript编程简介 CoffeeScript是一种简洁、优雅的编程语言,其设计目的是为了改善JavaScript的语法...

    Rails3+GithubOAuth2+设计示例应用程序_Ruby_JavaScript_下.zip

    Rails 3支持Unobtrusive JavaScript (UJS),使得JavaScript与Rails的DOM操作和Ajax请求更加无缝。 5. **RESTful API**:Rails 3鼓励使用REST(Representational State Transfer)架构风格,这可能导致示例应用有一...

    Agile Web Development with Rails,Fourth Edition 第四版

    这包括AJAX的使用,以及利用Prototype或jQuery进行页面动态更新和交互。 对于视图部分,erb和haml模板语言的比较和选择,以及辅助方法的使用,都是书中重要的内容。此外,还会有关于样式表管理和响应式设计的讨论,...

    ajax-datatables-rails:DataTable的ajax方法的包装,该方法允许与Rails应用程序中的服务器端分页同步

    ajax-datatables-rails 重要说明:该gem面向DataTables 1.10.x版。 经过测试: 滑轨5.2.4 / 6.0.3 / 6.1.0 Ruby 2.5.x / 2.6.x / 2.7.x SQLite3 PostgreSQL 13 MySQL的8 Oracle XE 11.2(感谢 ) 描述 是一...

    Rails里给文件上传添加progress_bar

    为了添加进度条功能,我们需要引入一个前端库,如jQuery或React,并结合Ajax进行异步上传。这里我们假设使用jQuery,配合jQuery File Upload插件,它提供了一个简单的API来处理文件上传和进度事件。 1. **安装...

    Ruby on Rails中文指南

    14. **AJAX和Unobtrusive JavaScript (UJS)**:Rails支持无侵入式JavaScript,通过数据属性和事件监听,使页面的部分内容能够异步更新,增强用户体验。 15. **ActiveJob**:Rails 4.2引入的ActiveJob是一个抽象层,...

Global site tag (gtag.js) - Google Analytics