Responsive Tabs is a jQuery plugin that provides responsive tab functionality.

Overview

jQuery Responsive Tabs

This jQuery plugin provides responsive tab functionality. The tabs transform to an accordion when it reaches a CSS breakpoint. Check out a demo at http://jellekralt.github.io/Responsive-Tabs/

Features

  • Tabs transform to accordion based on breakpoint
  • Uses javascript / jQuery for the technical tab switching (class based)
  • Uses CSS for the desktop/tablet/mobile view
  • Has callback events for the tab events
  • Tabs can be opened with URL hashes
  • Tabs can auto rotate
  • Tabs can be collapsed (optional)
  • Tabs can start collapsed based on the view (optional)
  • Tabs can be disabled
  • The tabs are controllable with API methods
  • Cross browser compatibility (IE7+, Chrome, Firefox, Safari and Opera)
  • Multiple device support (Web, Tablet, Mobile, etc)

How to use

  • Requires jQuery (minimaly jQuery 1.7.0)
  • Include jquery.responsiveTabs.js
">
<script src="js/jquery.responsiveTabs.js">script>
  • Include responsive-tabs.css for the basic Tabs to Accordion switching
">
<link type="text/css" rel="stylesheet" href="css/responsive-tabs.css" />
  • Include style.css for a basic tab/accordion theme
">
<link type="text/css" rel="stylesheet" href="css/style.css" />
  • Use this HTML markup:
.......
.......
.......
">
<div id="responsiveTabsDemo">
    <ul>
        <li><a href="#tab-1"> .... a>li>
        <li><a href="#tab-2"> .... a>li>
        <li><a href="#tab-3"> .... a>li> ul> <div id="tab-1"> ....... div> <div id="tab-2"> ....... div> <div id="tab-3"> ....... div> div>
  • Use this jQuery function to enable responsive tabs on the selected element:
$('#responsiveTabsDemo').responsiveTabs({
    startCollapsed: 'accordion'
});

Get

Bower

bower install responsive-tabs

NPM

npm install responsive-tabs

CDN

Responsive Tabs is available on jsDelivr

http://www.jsdelivr.com/#!jquery.responsive-tabs

API

The following options are available:

Collapsible

If set to 'true' the panels are collapsible. The values 'tabs' and 'accordion' can be used to make the panels collapsible in a specific view/state. If a tab is active and you select it again, the panel will collapse.

collapsible: false // The panels are not collapsible
collapsible: true // The panels are collapsible
collapsible: 'tabs' // The panels are only collapsible if the view is currently tab based
collapsible: 'accordion' // The panels are only collapsible if the view is currently accordion based

Start collapsed

This option defines if the first panel on load starts collapsed or not. With the values 'tabs' and 'accordion' you can specify in which view the tabs are supposed to start collapsed.

startCollapsed: false // Do not collapse on start
startCollapsed: true // Start with the panels collapsed
startCollapsed: 'tabs' // Start with the panels collapsed if the view is currently tab based
startCollapsed: 'accordion' // Start with the panels collapsed if the view is currently accordion based

Disabled tabs

An array with zero based integers that define the tabs that should be disabled

disabled: [0,2] // Disables the first and third tab

Active tab

An 0 based integer that defines the initial opened tab on load.

active: 1 // Opens the second tab on load

Accordion Tab HTML element

A single HTML element template in which the accordion tab will be wrapped.

accordionTabElement: '
   
'

Set hash

A boolean that can be used to enable and disable the setting of a reference to the selected tab in the URL hash. If set to 'true', the selecting of a new tab will set the reference to that tab in the URL hash.

setHash: true

Rotate

This option can be used to auto rotate the tabs. The tabs will stop rotating when a tab is selected.

rotate: false, // The tabs won't auto rotate
rotate: true, // The tabs will auto rotate from the start

Event

This option can be used to specify the event that activates a tab. For instance: 'mouseover'. Defaults to 'click'

event: 'click' // (default) The tabs will activate on click
event: 'mouseover' // The tabs will activate on mouseover
etc...

Animation

This option enables the animation of the panels. By default the panels will just show and hide, this option can be used to make the panels slide up and down and fade in and out.

animation: 'fade', // The panels will fade in and out
animation: 'slide', // The panels will slide up and down

You can enable / disable the queueing of the animation by setting the animationQueue option.

animationQueue: false, // (default) disables the queueing of the animations. With this option on, all animations happen at the same time
animationQueue: true, // enables the queueing of the animations. With this option on, animations wait for each other
animationQueue: 'tabs', // enables the queueing of the animations for the tabs state only
animationQueue: 'accordion', // enables the queueing of the animations for the accordion state only

You can set the speed of the animation by setting the duration option.

duration: 500, // (default) Sets the animation duration to 500

Scroll to Accordion panel

This options can be used to enable automatic scrolling to the accordion panel that has been opened

scrollToAccordion: false, // (default) disables the auto scrolling to the accordion panel
scrollToAccordion: true, // enables the auto scrolling to the accordion panel

Scroll to Accordion panel on load

This option can be used to disabling the scrolling to an accordion panel on load

scrollToAccordionOnLoad: true, // (default) enables scrolling to accordion on load
scrollToAccordionOnLoad: false, // disables scrolling to accordion on load

You can define an offset in pixels for the scroll to accordion panel by setting the scrollToAccordionOffset option.

scrollToAccordionOffset: false, // (default) disables the auto scrolling to the accordion panel
scrollToAccordionOffset: true, // enables the auto scrolling to the accordion panel

Navigation container

This option can be used to select a different container element for the navigation

    .

    navigationContainer: '.some-css-selector'
    • Tab
    • ...
    ">
    <div class="some-css-selector">
        <ul>
            <li>Tabli>
            ...
        ul>
    div>

    Callbacks

    Click

    This callback is called after a tab is clicked, regardless of whether it's disabled

    Arguments

    • event: Clicked event
    • tab: Clicked tab object
    click: function(event, tab){},

    Activate

    This callback is called after a tab is selected

    Arguments

    • event: Activate event
    • tab: Activated tab object
    activate: function(event, tab){},

    Deactivate

    This callback is called after a tab is deactivated

    Arguments

    • event: Deactivate event
    • tab: Deactivated tab object
    deactivate: function(event, tab){},

    Load

    This callback is called after the plugin has been loaded

    Arguments

    • event: Load event
    • tab: First tab object
    load: function(event, firstTab){},

    Activate State

    This callback is called after the plugin switches from state (Tab view / Accordion view)

    activateState: function(){}

    Methods

    The following methods are available:

    Activate

    This method activates/opens a tab by using a zero based tab reference

    $('#responsiveTabsDemo').responsiveTabs('activate', 1); // This would open the second tab

    Deactivate

    This method deactivates/closes a tab by using a zero based tab reference

    $('#responsiveTabsDemo').responsiveTabs('deactivate', 1); // This would close the second tab

    Enable

    This method enables a tab by using a zero based tab reference

    $('#responsiveTabsDemo').responsiveTabs('enable', 1); // This would enable the second tab

    Disable

    This method deactivates/closes a tab by using a zero based tab reference

    $('#responsiveTabsDemo').responsiveTabs('disable', 1); // This would disable the second tab

    startRotation

    This method start the rotation of the tabs. You can use the first argument to define the speed.

    $('#responsiveTabsDemo').responsiveTabs('startRotation', 1000); // This would open the second tab

    Events

    The following events are emitted on the element the tabs are initialised on (the container):

    tabs-load

    This event is triggered when the tabs plugin has finished loading

    Passed variables

    • event

    tabs-activate

    This event is triggered when a tab is activated

    Passed variables

    • event
    • Activated tab object

    tabs-deactivate

    This event is triggered when a tab is deactivated

    Passed variables

    • event
    • Deactivated tab object

    tabs-activate-state

    This event is triggered when the state of the plugin changes

    Passed variables

    • event
    • State object
      • Old state
      • New state

    Credits

    The idea for this plugin is based on 'Easy Responsive Tabs to Accordion' by samsono (github.com/samsono)

    https://github.com/samsono/Easy-Responsive-Tabs-to-Accordion

    Support

    If you have any questions, problems or suggestions, feel free to submit a ticket! Also, pull requests with improvements, new features or other great stuff are always very welcome.

    Licence

    MIT: http://jellekralt.mit-license.org/

Comments
  • Improved scrolling behaviour for accordion without animation

    Improved scrolling behaviour for accordion without animation

    Hey, I did some improvements for the scrollToAnchor behaviour, which didn't work as expected / at all for accordions without animation.

    I also included the option to automaticaly calculate body offset and add this to the scroll offset. This is usefull when a fixed header navigation is present.

    I also did some cleanup of the CSS classes and loosened the prerequisites for the tab HTML structure.

    opened by herrschuessler 10
  • IE shows all accordion content, firefox and chrome don't

    IE shows all accordion content, firefox and chrome don't

    I took this project over from someone else, so I may be overlooking something simple. I have 5 tabs, each with a search bar in the content. When I display in Firefox and Chrome I only see one search bar (whichever tab is selected). In both IE11 and IE8 I see all of the search bars. How can I make IE behave?

    Thanks

    opened by peggythrasher 8
  • Activated panel does not switch back to default

    Activated panel does not switch back to default

    Thank you very much for this useful plugin. I love the controls I can have on the behaviours of tabs and accordions.

    I must be doing doing something wrong as my accordion titles do not change their status when they are deactivated. When one of the accordion panels is open and click another, the first panel close ok and the 2nd panel opens up, but the "r-tabs-state-active" css class stay on the div tag. I understand the correct behaviour is this should change back to the default.

    Would it be possible for you to review my markup below and tell me what I am doing incorrectly?

       <section id="tabs">
                <h2>heading</h2>
                    <ul>
                        <li><a href="#tab-1">Responsive Tab-1</a></li>
                        <li><a href="#tab-2">Responsive Tab-2</a></li>
                        <li><a href="#tab-3">Responsive Tab-3</a></li>
                        <li><a href="#tab-4">Responsive Tab-4</a></li>
                        <li><a href="#tab-5">Responsive Tab-5</a></li>
                    </ul>
                    <article id="tab-1">
                        <h3>heading</h3>
                        <p>text</p>
                    </article>
                    <article id="tab-2">
                        <h3>heading</h3>
                        <p>text</p>
                    </article>
                    <article id="tab-3">
                        <h3>heading</h3>
                        <p>text</p>
                    </article>
                    <article id="tab-4">
                        <h3>heading</h3>
                        <p></p>
                    </article>
                    <article id="tab-5">
                        <h3>heading</h3>
                        <p>text</p>
                    </article>
    
                </section>
                <script type="text/javascript">
                    $(document).ready(function () {
                        $('#tabs').responsiveTabs({
                            active: 0,
                            startCollapsed: 'accordion',
                            collapsible: 'accordion',
                            rotate: false,
                            animation: 'slide',
                        });
                    });
                </script>
    
    opened by mayakei 8
  • Problem of Collapsed Tabs when Viewport changes (landscape/portrait mode)

    Problem of Collapsed Tabs when Viewport changes (landscape/portrait mode)

    Hi there,

    by adding > startCollapsed: 'accordion' < to the javascript function, on a mobile device the accordions starts collapsed, but on higher widths normally the first tab should be open. So far, so good.

    Problem: if you have a device, which has a lower width than the media query breakpoint, the accordion start collapsed as it should.

    But if you change now e.g. from portrait mode to landscape mode, and the resolution of the device gets bigger than the media query, all the tabs are still collapsed (because the device started with a collapsed accordion)

    There should be some check after passing the width of the media query....otherwise this leads to a faulty impression.

    accordion_collapsed tabs_collapsed

    opened by Voodoopupp 7
  • mobile first setting of the tabs/anchor

    mobile first setting of the tabs/anchor

    first of all i am very glad that i have found this solution for the one pager I am creating. I use this solution to show a painting gallery with different categories (people, animals etc.) in 1 html page. it looks great! (i changed the css a bit). now the issue with the smartphone design:

    when i click on a tab it opens the galery: perfect. but then i scroll down, look at all the paintings and i find the next tab. then i click on this tab: then it jumps to far in my webpage. it does open the galery but jumps to far, beyond the paintings in a new section. this section does have an anchor to, which i created to introduce the painter. But as a user you loose sight on the paintings and you might think it does not work as your are in te next section then. the user has to scroll back up to see the paitings for that tab. when i first close the original tabs (then all tabs are close) and then i open a new one it works correctly. but it might not be intuitieve for an end user. do you recognize this issue?

    if you want i can sent you the files. to see what happens. kind regards!

    opened by Asha3012 6
  • Stop tabs from being deactivated

    Stop tabs from being deactivated

    I'd like to be able to stop an active tab from being deactivated. Is there a setting for this?

    You can see the behaviour on http://www.landcoalition.org/en/resources if you expand the filters and then click on a tab twice. It will toggle between active and inactive states which is odd as the collapsing of the panel has been disabled for tabs.

    opened by tanc 5
  • After resize tabs can be completely closed?!

    After resize tabs can be completely closed?!

    Hello, I use the plugin with: responsiveTabs({collapsible: "tabs"});

    So I only want tabs and no accordion. After resizing the browser it is always possible to completely close all tabs by clicking on the active tabs navigation item. No content anymore for the user, only navigation is visible.

    Is there any chance to disable that?

    opened by godsdog 5
  • Loading other tabs, causes Slick carousel not to show unless page loads on active tab

    Loading other tabs, causes Slick carousel not to show unless page loads on active tab

    I'm having trouble understanding how to use your events to fire other elements. I have this code:

    // hook into ResponsiveTabs event and manually trigger 'resize' event so that Slick recalculates the widths
    $('#horizontalTab').on('tab-load', function (e) {
        $('.slick-carousel-responsive').resize();
    });
    

    However, I have no idea how to use the 'tab-load' events you've posted on your site. Can you please explain this, and hopefully give me a little push on how to set this resize() action up when the tabs load?

    opened by ghost 5
  • How to add more tabs

    How to add more tabs

    Hello - I didn't see anything in the instructions about how to add more tabs.

    I've added 5 more in the HTML, but there's obviously more that needs to happen codewise.

    Thanks!

    opened by villemonte 5
  • When you click a open tab, collapses

    When you click a open tab, collapses

    I like this responsive tabs, the best I have found yet. Hope you will integrate some animation for the accordion, then it is perfect :)

    Anyway, when you click a tab that is already open, the tab collapses. Should stay open.

    opened by microcipcip 5
  • Default Behaviour

    Default Behaviour

    Just a question...

    Why does the demo default behaviour actually not follow what you actually want or expect it to do?

    When I click a tab I want the tab content to reveal, not show in a separate box the fact the tab has been clicked. Now I am sure this is all very clever and that but what I and my users want is that when they click a tab they can see the content in the tab and not be told what they have clicked.

    This seems utterly, utterly stupid.

    I am not a programmer but I want to use this type of element without having to pick it apart just to get the default expected behaviour of something to work. Consequently I am now having to look elsewhere for something I can actually use...

    opened by IanMustard 4
  • change breakpoint

    change breakpoint

    I've got this working but would like to have it show on all devices, so no breakpoint.

    Just can't find where it stipulates when to switch to the accordions.

    Thanks

    opened by pixelatedorange 0
  • Not open first tab directly on mobile devices

    Not open first tab directly on mobile devices

    When scrollToAccordion is set to true you jump directly to the open tab on mobile devices. So a check was added to only open the first tab when the actual device is not a mobile.

    opened by jengi77 1
  • Please update it with aria attribute.

    Please update it with aria attribute.

    Thanks for providing such nice plugin to use. But plugin is not updated with aria label like https://www.w3.org/TR/wai-aria-practices/examples/tabs/tabs-1/tabs.html which is required for WCAG and screen reader.

    opened by tandonrajiv 0
  • Tab order on mobile

    Tab order on mobile

    Hi,

    Just noticed that tab order is different on mobile phone.

    I would like tab-1 to be on top of all the other tabs, however it comes second from the bottom. Is there any suggestions to fix this?

    opened by machikolacey 0
Releases(v1.6.3)
  • v1.6.3(Oct 28, 2017)

  • v1.6.2(Mar 27, 2017)

  • v1.6.1(Aug 14, 2016)

    New features

    • The plugin now has a click callback that is called whenever a tab is clicked, even if the tab is disabled. (Thanks to @Dobby89 for PR #109)
    Source code(tar.gz)
    Source code(zip)
  • v1.6.0(Feb 15, 2016)

    New features

    • The option scrollToAccordionOnLoad has been added which defaults to true and can be used to disable scrolling to accordion panel on load (Fixes #92)
    Source code(tar.gz)
    Source code(zip)
  • v1.5.2(Dec 10, 2015)

  • v1.5.1(Oct 12, 2015)

  • v1.5.0(Aug 6, 2015)

    New features

    • #51: You can now specify the HTML element for the accordion tab (thanks to @coxrichuk for PR #72)
    • You can now customize the CSS classes for container and ul (thanks to @herrschuessler for PR #61)

    Bugfixes

    • jQuery dependency in bower.json and package.json (thanks to @timkelty for PR #58)
    Source code(tar.gz)
    Source code(zip)
  • v1.4.5(May 4, 2015)

  • v1.4.4(Apr 23, 2015)

  • v1.4.3(Jan 27, 2015)

  • v1.4.2(Dec 17, 2014)

  • v1.4.1(Dec 12, 2014)

  • v1.4.0(Jul 23, 2014)

    New features

    • A new method 'deactivate' has been added that can be used to close a tab

    Improvements

    • The emitted events are now described in the readme file, this was previously a hidden feature
    Source code(tar.gz)
    Source code(zip)
  • v1.3.6(Jul 14, 2014)

  • v1.3.5(Jun 10, 2014)

    New features

    • The 'activate' callback now has the arguments: event, tab (solves #20)
    • The 'deactivate' callback now has the arguments: event, tab
    Source code(tar.gz)
    Source code(zip)
  • v1.3.4(May 27, 2014)

  • v1.3.3(Mar 31, 2014)

    Bugfixes

    • This release fixes a bug that broke support for IE8. Because array.indexOf() is only supported since IE9 (oh Microsoft...) i've replaced it with the jQuery equivalent. This fixes issue #14
    Source code(tar.gz)
    Source code(zip)
  • v1.3.2(Mar 29, 2014)

    New Features

    • The plugin now supports calling methods outside the plugin. You can now for instance call .responsiveTabs('activate', 2); to activate the third tab.

    Improvements

    • Improved the demo with controls
    • Added version numbering to the JS file so you can check which version you are running from now on.
    Source code(tar.gz)
    Source code(zip)
  • v1.3.1(Mar 27, 2014)

    Apparently I was a bit too hasty when releasing v1.3.0, it turned out to have some bugs which I could have prevented by reviewing my stuff a bit better ;).

    Bugfixes

    • Since the addition of the animation option the plugin wasn't fully compatible with jQuery 1.7.2 anymore. This has now been fixed. This also solves issue #9.
    • I apparently forgot to add disabled state classes to the accordion tab and to add CSS for the disabled accordion tab (this is what I mean by 'too hasty' ;). This has now been added.
    • Cleaned up some code errors / vanity stuff
    • The minified version of the script wasn't updated with v1.3.0, this has now been fixed.
    Source code(tar.gz)
    Source code(zip)
  • v1.3.0(Mar 26, 2014)

  • v1.2.0(Feb 6, 2014)

  • v1.1.2(Jan 13, 2014)

    New Features

    • Bower and npm packages added

    Bugfixes

    • 'Default' panel animation still had animation because the default duration was 500. When the default animation is selected, the duration has been forced to 0 now. [This fixes ticket #6]
    Source code(tar.gz)
    Source code(zip)
  • v1.1.1(Nov 14, 2013)

    New Features

    • The collapsible option can now be used to collapse only in the tab or accordion view (#1)

    Bugfixes

    • The addition of panel animation caused a bug that occured when trying to collapse a panel, this has been fixed.
    Source code(tar.gz)
    Source code(zip)
  • v1.1.0(Oct 30, 2013)

Owner
Jelle Kralt
Frontend Engineering Manager @codezilla-nl. Love JavaScript, Angular, Node.js, CSS and more
Jelle Kralt
LiveTabs is a Javascript library that allows you to create and manage tabs on the fly. This library gives the ability to your application to act like browser tabs, making dynamic tabs.

LiveTabs Table of content Description Goals Technologies Setup Description LiveTabs is a Javascript library that allows you to create and manage tabs

Hossein Khalili 3 May 3, 2022
Easy responsive tabs - is a lightweight jQuery plugin which optimizes normal horizontal or vertical tabs to accordion on multi devices

Easy responsive tabs - is a lightweight jQuery plugin which optimizes normal horizontal or vertical tabs to accordion on multi devices like: web, tablets, Mobile (IPad & IPhone). This plugin adapts the screen size and changes its action accordingly.

Samson Onna 600 Dec 8, 2022
jQuery plugin to show a tabs bar for navigation. The tabs can be defined once, and shared across multiple HTML pages.

jquery.simpletabs v1.2.3 The jquery.simpletabs plugin shows a tabs bar for navigation. The tabs can be defined once, and shared across multiple HTML p

Peter Thoeny 1 Feb 23, 2022
Chrome style tab-resizing for jQuery UI tabs

stretchy tabs Chrome style tab-resizing for jQuery UI tabs stretchy tabs provides methods for adding and removing tabs ##Initialize stretchy tabs $( "

Adam Jimenez 8 Nov 19, 2021
Meogic-tab-manager is an extensible, headless JavaScript tab manager framework.

MeogicTabManager English document MeogicTabManager是一个有可拓展性的、headless的JavaScript标签页管理框架。 MeogicTabManager旨在提供可自由组装页面框架、自定义页面组件、甚至覆盖框架自带事件响应的开发体验。 Meogi

meogic-tech 5 Oct 8, 2022
Responsive tabs-to-accordion script without jQuery, written using pure JavaScript

vanilla-tabs Responsive tabs-to-accordion script without jQuery, written using pure JavaScript Author Dmytro Kudleichuk LinkedIn GitHub Online Demo Se

Dmitriy Kudleichuk 7 Dec 20, 2022
A JavaScript plugin that provides snapping functionality to a set of panels within your interface.

PanelSnap A JavaScript library that provides snapping functionality to a set of panels within your interface. Introduction PanelSnap is a framework ag

Guido Bouman 616 Dec 16, 2022
jQuery tabs plugin

English description | Описание на русском jQuery tabs plugin. Easy and well done tabs with many options and skin support Version: 1.0.2 Project page a

Denis Ineshin 83 Nov 27, 2022
A powerful and simple JavaScript library provides a history for undo/redo functionality. Just like a time machine! 🕐

UndoRedo.js A powerful and simple Javascript library provides a history for undo/redo functionality. Just like a time machine! ?? Installation: Node.j

${Mr.DJA} 26 Dec 14, 2022
Basic, accessible, responsive and freely restyleable tabs.

Skeletabs · Skeletabs is an open source jQuery plugin that provides tabbed browsing feature to your web contents. It is focused on accessibility and s

Taesung, Lim 18 Nov 13, 2022
Accordion Slider is a jQuery plugin that combines the functionality of a slider with that of an accordion.

Accordion Slider - jQuery slider plugin A responsive and touch-enabled jQuery accordion slider plugin that combines the functionality of a slider with

null 0 Dec 29, 2022
jQuery plugin that combines the functionality of a grid with that of an accordion.

Grid Accordion - jQuery plugin A responsive and touch-enabled jQuery grid accordion plugin that combines the functionality of a grid with that of an a

null 1 Dec 16, 2022
Simple Cropper is a jQuery plugin which gives you ability to add cropping functionality to your web application

Simple Cropper is a jQuery plugin which gives you ability to add cropping functionality to your web application. It uses html5 canvas to create cropped images and css3, so it only works on latest browsers.

null 1 Feb 15, 2022
A jQuery tabs module for todays web!

tabulous.js A jQuery tabs module for todays web! Documentation Tabulous.js can be used with any contents you choose in the tabs and it couldn't be mor

Aaron Lumsden 554 Dec 4, 2022
Obsidian plugin to open a note of your choice when creating a new tab, like in the browser.

New Tab Default Page Obsidian plugin to open a note of your choice when creating a new tab, like in the browser. Usage Set the note to open in new tab

pseudometa 20 Dec 27, 2022
📦 Alpine JS plugin to extend the functionality of the official $persist plugin

Alpine JS Persist Extended Alpine JS magic method $storage extends the official $persist plugin to help you work with local storage ?? Example ?? <div

Mark Mead 11 Dec 28, 2022
An Obsidian plugin that allows adding iframes with custom styling as editor tabs. Also comes with presets for Google Keep and more.

Obsidian Custom Frames An Obsidian plugin that turns web apps into panes using iframes with custom styling. Also comes with presets for Google Keep an

Ellpeck 208 Jan 8, 2023
Easy and flexible jQuery tabbed functionality without all the styling.

JQuery EasyTabs Plugin Tabs with(out) style. EasyTabs creates tabs with all the functionality, no unwanted changes to your markup, and no hidden styli

Steve Schwartz 553 Nov 23, 2022
Picky is a jQuery plugin that provides simple client-side date validation when entering dates using select tags.

jquery.picky.js Picky is a jQuery plugin that provides simple client-side date validation when entering dates using select tags. Features Instead of g

Patrick Crowley 5 Apr 25, 2021