Create Repeatable Groups Of Form Fields - jQuery Form Repeater
| File Size: | 8.81 KB |
|---|---|
| Views Total: | 12436 |
| Last Update: | |
| Publish Date: | |
| Official Website: | Go to website |
| License: | MIT |
The Form Element Repeater jQuery plugin allows the user to dynamically add and remove repeatable groups of form fields that are easy to style and customize.
Basic usage:
1. Create a group of form fields that will be repeatable. Available HTML data attributes;
- data-pattern-text: text pattern
- data-pattern-id: the ID of each each form field
- data-pattern-name: name pattern
<div class="example">
<div class="r-group">
<p>
<label for="demo_0_0" data-pattern-text="Demo Name +=1:">Demo Name 1:</label>
<input type="text" name="demo[0][name]" id="demo_0_name" data-pattern-name="demo[++][name]" data-pattern-id="demo_++_name" />
</p>
<p>
<label for="demo_0_0" data-pattern-text="Demo Type +=1:">Demo Type 1:</label>
<input type="text" name="demo[0][type]" id="demo_0_type" data-pattern-name="demo[++][type]" data-pattern-id="demo_++_type" />
</p>
<p>
<!-- Add a remove button for the item. If one didn't exist, it would be added to overall group -->
<button type="button" class="r-btnRemove">Remove -</button>
</p>
</div>
</div>
2. Create an 'Add' button next to the form fields.
<button type="button" class="r-btnAdd">Add +</button>
3. Include the necessar JavaScript files at the bottom of the web page.
<script src="https://code.jquery.com/jquery-1.12.4.min.js"
integrity="sha384-nvAa0+6Qg9clwYCGGPpDQLVpLNn0fRaROjHqs13t4Ggj3Ez50XnGQqc/r8MhnRDZ"
crossorigin="anonymous">
</script>
<script src="jquery.form-repeater.js"></script>
4. Activate the form repeater plugin with default settings. Possible parameters:
- options: an object of possible plugin options.
- data: an array of data objects containing form fields to clone.
$('#example1').repeater(options, data);
5. You can also clone the form fields defined in the data array on init.
$('#example').repeater(options, [
{
"demo[0][name]":"test",
"demo[0][type]":"test"
},{
"demo[1][name]":"test2",
"demo[1][type]":"test2"
}]
});
6. All possible options (with default values) to customize the form repeater.
$('#example').repeater({
// default CSS selectors
groupClass: 'r-group',
btnAddClass: 'r-btnAdd',
btnRemoveClass: 'r-btnRemove',
// min/max amount of items
minItems: 1,
maxItems: 0,
// the starting index of your array.
startingIndex: 0,
reindexOnDelete: true,
// shows min items on load
showMinItemsOnLoad: false,
// append, prepend, insertAfterLast
repeatMode: 'insertAfterLast',
// 'slide' or 'fade'
animation: null,
// animation speed
animationSpeed: 400,
// easing name
animationEasing: 'swing'
});
7. Callback functions you might find useful.
$('#example').repeater({
beforeAdd: function($doppleganger) {
return $doppleganger;
},
afterAdd: function($doppleganger) {},
beforeDelete: function($elem) {},
afterDelete: function() {}
});
This awesome jQuery plugin is developed by cballou. For more Advanced Usages, please check the demo page or visit the official website.











