Giter VIP home page Giter VIP logo

age-picker's Introduction

Age Picker

npm

Enhance input tags for collecting age information using data- attributes and simple wireup JavaScript.

Example

Example

Installation

npm install age-picker

Or, load this script manually: https://unpkg.com/age-picker@latest/lib/age-picker.min.js -- This targets the latest version, which may include breaking changes for major version updates. A specific version can be targeted to avoid potential breaking changes. See https://unpkg.com for more information.

Quickstart

<label for="age">Age or DOB</label>
<input type="text" id="age" name="age" data-age-picker />

<label for="direct-entry-only-age">Age or DOB (direct entry only)</label>
<input type="text" id="direct-entry-only-age" name="direct-entry-only-age" data-age-picker-direct-entry-only />
new AgePicker().init();

Usage

  • Decorate input tags with a data-age-picker or data-age-picker-direct-entry-only attribute.
  • Run new AgePicker().init();, optionally specifying the scope in the parameter (defaults to document.body).

Configuration options can be specified in the AgePicker constructor. Example:

new AgePicker({
  selectClasses: ['form-control']
}).init();

Configuration options

Option Description Default Value
defaultDomScope The default DOM scope to scan for dataAttribute items. document.body
dataAttribute The data- attribute to scan for. 'data-age-picker'
directEntryOnlyDataAttribute The data- attribute to scan for supporting direct entry only. 'data-age-picker-direct-entry-only'
prefixClass The prefix for CSS classes used by other configuration CSS classes. 'age-picker'
containerClass The container class surrouding the age picker and all related DOM assets. ${this.configuration.prefixClass}-container
monthSelectClass The select tag to select the month. ${this.configuration.prefixClass}-month
daySelectClass The select tag to select the day. ${this.configuration.prefixClass}-day
selectClasses An array of custom classes to apply to month and day select elements. []
i18n Internationalization data, defaults to US English. { months: [...] }

Methods

init(domScope = this.configuration.defaultDomScope)

Scan the domScope and wire up any elements matching this.configuration.dataAttribute.

create(element)

Create the age picker assets targeting element. Used by init().

Events

Note: Events should be used rather than listening for keyup, change, etc. on the <input data-age-picker> tag, since a hidden input becomes the source of truth for the over-the-wire 'age'.

ageChanged

Raised on the input element when the age is changed or cleared by any forms of user input (both direct entry and year, month, day inputs). This event includes the age value.

Notes

Our use cases dictate collecting the month and day from the user. However, other or future use cases may allow for using today's date. By using today's date with a provided year age could be calculated. This feature does not currently exist, but was considered.

Currently supports Gregorian calendar using English language only. Additional languages can be supported by overriding the i18n configuration.

Development

  • npm install
  • npm run build or npm run watch, then open demo/index.html in a browser.
  • npm test to run tests.
  • npm run lint to run linter.

License

MIT

age-picker's People

Contributors

comfroels avatar jrusbatch avatar kendaleiv avatar khalidabuhakmeh avatar scottschwalm avatar

Watchers

 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.