Duplicate a section of a form, maintaining accessibility (a11y)
label to maintain accessibility (a11y) and work with the database.
To help you get a jumpstart on this, the .js files are well-commented.
A more detailed overview can be found here. I will be working on porting it over to this page soon. (Still working on this todo.)
The jQuery version has been in development since June 2013, and is more stable, at the moment.
The ES6 version was a direct port over from the jQuery version. While it works in the same way the jQuery one does, there are some notable todos and refactoring that needs to be done before it can be used in production environments.
This cloning script is built to:
- allow a user to duplicate a section (one or more inputs) of a form
- not duplicate the user’s inputs from the original section, but show a fresh, empty section below the original
- stop a user from adding new sections at a specified integer (default is 5 total)
- maintain the accessibility of matching the labels to the input attributes, even after cloning
- increment the updated
nameattributes (ID2_, ID3_, ID4_) so as to be unique pairs
- be customizable to work with your existing form
This is not a drop-in-and-it-works solution. You can see in the .js files that we depend on querying for classnames to update the
name attributes of inputs, among other things.
How it works
- you wrap the section you want to allow to be cloned with a div with a class of
- on click, we clone that section and all of its children nodes
- then we increment a number variable (to keep track of sections;
nameattributes; removing sections...)
- increment the
nameattributes (ID2_, ID3_, ID4_) of inputs
- set all input values to null
- insert the cloned and updated section after the previous
- check if we are at the max allowable sections, and update buttons accordingly
Duplicate a whole section of a form
The Bootstrap 3.4 demo for duplicating a whole section of a form can be found here.
Duplicate multiple elements independently
The Bootstrap 3.4 demo supporting duplicating multiple elements independently can be found here.
Cool Time Budget Calculator on Codepen
I found a pen that uses version 0.9.4.1 to create a simple form for a calculator. View it here.
You can best reach me by using my contact page.
Or on Twitter: @tristandenyer
The MIT License (MIT)