Repeater
Creates an interface to add and remove a repeatable group of input elements.
Demo
bower install jquery.repeater --save
npm install jquery.repeater --save
Templates
Repeater uses the first "data-repeater-item" as a template for added items.
Rewritten Name Attributes.
Repeater rewrites your name attributes to avoid collisions within the same form.
(since the name attributes will be repeated). In the example below, the
name attributes would be renamed group-a[0][text-input]
and group-a[1][text-input]
.
Checkbox inputs and Multiple Select inputs will have an additional []
appended. So for example a checkbox
with name foo
would be mapped to group-a[0][foo][]
.
Names get reindexed if an item is added or deleted.
Example
<!-- The value given to the data-repeater-list attribute will be used as the base of rewritten name attributes. In this example, the first data-repeater-item's name attribute would become group-a[0][text-input], and the second data-repeater-item would become group-a[1][text-input] -->
Nested Example
<!-- outer repeater --> <!-- innner repeater -->
repeaterVal
Get a structured object of repeater values, without submitting the form.
The rewritten name attributes of the form group[index][name]
work well
when submitting to a server that knows how to parse this format, but not as well
when trying to grab the values via javascript.
The repeaterVal
method can be called on a repeater group and will parse the
renamed attributes into something more easily digestible
// setup the repeater;//get the values of the inputs as a formatted object;
setList
You can set repeater list data after it has been initialized.
var $repeater = ;$repeater;