Skip to content

Ruby on Rails unobtrusive scripting adapter for jQuery

License

Notifications You must be signed in to change notification settings

rails/jquery-ujs

Repository files navigation

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

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.

Installation using the jquery-rails gem

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

gem 'jquery-rails'

And run:

$ bundle install

Require both jquery and jquery_ujs into your application.js manifest.

//= require jquery
//= require jquery_ujs

Installation using npm.

Run npm install --save jquery-ujs to install the jquery-ujs package.

Installation using Rails and Webpacker

If you're using webpacker (introduced in Rails 5.1) to manage JavaScript assets, then you can add the jquery-ujs npm package to your project using the yarn CLI.

$ yarn add jquery-ujs

Then, from any of your included files (e.g. app/javascript/packs/application.js, or from a JavaScript file imported by such a pack), you need only import the package for jquery-ujs to be initialized:

import {} from 'jquery-ujs'

Installation using Bower

Run bower install jquery-ujs --save to install the jquery-ujs package.

Usage

Require both jquery and jquery-ujs into your application.js manifest.

//= require jquery
//= require jquery-ujs

How to run tests

Follow this wiki to run tests.

Contributing to jquery-ujs

jquery-ujs is work of many contributors. You're encouraged to submit pull requests, propose features and discuss issues.

See CONTRIBUTING.

License

jquery-ujs is released under the MIT License.