Git Product home page Git Product logo

autonumeric-rails's Introduction

autonumeric-rails

Wrap up the excellent autoNumeric.js javascript library

autoNumeric is a jQuery plugin that automatically formats currency (money) and numbers as you type on form inputs. It supports most International numeric formats and currency signs including those used in Europe, North and South America, Asia and India (lakhs**).

autoNumeric.js github repository and documentation [https://github.com/BobKnothe/autoNumeric] (https://github.com/BobKnothe/autoNumeric)

autoNumeric.js home page and settings generator [http://www.decorplanit.com/plugin] (http://www.decorplanit.com/plugin)

The autonumeric-rails simply wrap up autoNumeric.js and in addition provides ujs flavor to autoNumeric.js

Installation

Add this line to your application's Gemfile:

gem 'autonumeric-rails'

And then execute:

bundle

Then add in your javascript.js manifest:

//= require jquery
//= require autonumeric

If you prefer using version 1.9.46 instead of 2.x version, replace require autonumeric by require autonumeric1 in your javascript manifest.

Usage

Simply add data-autonumeric attribute to your HTML tag to initialize autoNumeric
with its default values:

<%= form_for @model do |f| %>
  <%= f.text_field :field, data: {autonumeric: true} %>
<% end %>

You can also pass autoNumeric configuration parameters directly with a Hash in your HTML tag:

<%= form_for @model do |f| %>
  <%= f.text_field :field, data: {autonumeric: {aSign: 'USD ', mDec: 0}} %>
<% end %>

See autoNumeric page for all details on configuration and options.

AJAX

autonumeric-rails looks for ajaxComplete events which are trigger by jQuery every time an Ajax request finishes. As a result, rails-ujs elements (i.e. data-remote elements) automatically initialize autonumeric fields after the AJAX request is complete.

Javascript DOM manipulation

When a Javascript function generate and add to the DOM new fields with autonumeric attributes, you must manually refresh in order to initialize those new fields.

To do so you must trigger the refresh_autonumeric event on document after you modified the DOM:

$(document).trigger('refresh_autonumeric');

Disable autonumeric-rails and autoNumeric

You can disable autonumeric-rails and autoNumeric from an object and turn it back into a simple input element by calling AutonumericRails.delete_autonumeric_object and passing the targeted jQuery object to it:

var element = $("#field");
AutonumericRails.delete_autonumeric_object(element);

Note: This will not un-sanitize the field's value, and you must do it manually.

Internal

Autonumeric-rails creates in the DOM an hidden input with the same name as the text field. On each modification of the text field value (on keyup and blur events), the hidden input is updated with the sanitized value. When validating the form, the hidden field value is sent to the server as it is located after the text field in the DOM.

Changes

For a full list of change, see the CHANGELOG.md file

2.0

Update autoNumeric v 2.0. The previous version 1.9.46 is still available for compatibility.

1.9.33.1

Add class method delete_autonumeric_object to disable autonumeric-rails and autoNumeric attributes from an object

1.9.22

Bind on ajaxComplete event, so each jQuery ajax event automatically refresh autonumeric fields. Manually triggering refresh_autonumeric is not necessary for rails-ujs (i.e data-remote) anymore

1.9.18.1

Implement refresh_autonumeric event on document for manual update after the DOM has been modified

1.9.18.0

First attempt to implement automatic refresh of autonumeric fields using DOMNodeInserted. This was not cross-browser compatible and was quickly reverted

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Download firefox ESR in a directory of your choice (do not need to be your main firefox install). Create the file <gem_dir>/spec/firefox_path and fill it with the full path of firefox executable
  4. Commit your changes (git commit -am 'Add some feature')
  5. Push to the branch (git push origin my-new-feature)
  6. Create new Pull Request

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.