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.











