Skip to content

Latest commit

 

History

115 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chosen awesome (with ajax support and "on the fly" options insertion)

A written from scratch library that wraps around default html select controls and makes them more user friendly (Ruby on Rails package). Out of the box ajax support.

Usage

Install chosen-awesome-rails gem

Include chosen-awesome-rails in Gemfile

gem 'chosen-awesome-rails'

Then run bundle install

Include javascript assets

Add to your app/assets/javascripts/application.js

//= require chosen

Include chosen stylesheet assets

Add to your app/assets/stylesheets/application.css

*= require chosen

You might also use twitter bootstrap integration by adding

*= require chosen/bootstrap

Enable chosen

$("select").chosen()

Default options are:

{
  allow_insertion: false, // Allows to add missing options dynamically, e.g. when you
                          // need to show a list of tags allowing users to add missing ones.
  inherit_classes: true,  // Whether chosen should inherit html class names from the
                          // original select element or not.
  option_parser: null,    // A function that should return an object that
                          // will be passed to jQuery to build html option elemets:
                          // $("<option />", parsed_object).
  option_formatter: null  // A function that accepts an option object (jquery selector)
                          // and returns an array of 2 values where one is used
                          // for the dropdown item and another for the choice element
  placeholder: "..."      // Custom placeholder text (by default it will try to read it
                          // from the target element)
}

On the fly options insertion:

![Dynamic insertion example] (http://oi62.tinypic.com/14kb808.jpg)

The option formatter allows to build selects like this one:

![Custom dropdown options] (http://oi60.tinypic.com/28818i8.jpg)

You can also override text messages with:

{
  locale: {
    no_results: "No results found",
    start_typing: "Please start typing",
    add_new: "add new"
  }
}

And pass the next ajax options:

{
  ajax: {
    url: "where to fetch options",
    type: "get",      // optional
    dataType: "json", // optional
    data: {},         // optional
    async: true,      // optional
    xhrFields: null   // optional
  }
}

JS events

Once chosen is ready it triggers chosen:ready event on the target element. A link to the newly created Chosen object will be saved in the data-chosen attribute of the target select element.

About

A library that wraps around default html select controls and makes them more user friendly (Ruby on Rails package).

Resources

Stars

6 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages