Giter Club home page Giter Club logo

jquery-ujs's Introduction

Unobtrusive scripting adapter for jQuery

This unobtrusive scripting support file is developed for the Ruby on Rails framework, but is not strictly tied to any specific backend. You can drop this into any application to:

  • force confirmation dialogs for various actions;
  • make non-GET requests from hyperlinks;
  • make forms or hyperlinks submit data asynchronously with Ajax;
  • have submit buttons become automatically disabled on form submit to prevent double-clicking.

These features are achieved by adding certain "data" attributes to your HTML markup. In Rails, they are added by the framework's template helpers.

Full documentation is on the wiki, including the list of published Ajax events.

Requirements

  • jQuery 1.4.4 or later;
  • for Ruby on Rails only: <%= csrf_meta_tag %> in the HEAD of your HTML layout;
  • HTML5 doctype (optional).

If you don't use HTML5, adding "data" attributes to your HTML4 or XHTML pages might make them fail W3C markup validation. However, this shouldn't create any issues for web browsers or other user agents.

In Ruby on Rails 3, the csrf_meta_tag helper generates two meta tags containing values necessary for cross-site request forgery protection built into Rails. If you're using Rails 2, here is how to implement that helper:

# app/helpers/application_helper.rb
def csrf_meta_tag
  if protect_against_forgery?
    out = %(<meta name="csrf-param" content="%s"/>\n)
    out << %(<meta name="csrf-token" content="%s"/>)
    out % [ Rack::Utils.escape_html(request_forgery_protection_token),
            Rack::Utils.escape_html(form_authenticity_token) ]
  end
end

Installation

For automated installation in Rails, use the "jquery-rails" gem. Place this in your Gemfile:

gem 'jquery-rails', '>= 1.0.3'

And run:

$ bundle install

This next step depends on your version of Rails.

a. For Rails 3.1, add these lines to the top of your app/assets/javascripts/application.js file:

//= require jquery
//= require jquery_ujs

b. For Rails 3.0, run this command (add --ui if you want jQuery UI):

Be sure to get rid of the rails.js file if it exists, and instead use the new jquery_ujs.js file that gets copied to the public directory. Choose to overwrite jquery_ujs.js if prompted.

$ rails generate jquery:install

Manual installation

Download jQuery and "rails.js" and place them in your "javascripts" directory.

Configure the following in your application startup file:

config.action_view.javascript_expansions[:defaults] = %w(jquery rails)

Now the template helper javascript_include_tag :defaults will generate SCRIPT tags to load jQuery and rails.js.

jquery-ujs's People

Contributors

mislav avatar jangosteve avatar stevestmartin avatar qhoxie avatar stefanpenner avatar alexcrichton avatar scottgonzalez avatar emerleite avatar foca avatar lucasuyezu avatar josevalim avatar brianmario avatar siong1987 avatar spastorino avatar samoli avatar rstankov avatar drogus avatar khelll avatar igorw avatar dhh avatar indirect avatar amatsuda avatar

Stargazers

 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.