Repeatable Fields is a jQuery plugin which let's you create a set of fields that can be made to repeat. You can do the following to a field that is repeatable:
- Add new instance
- Remove existing instance
- Reposition an instance
The functionality that is provided by this plugin can also be referred to as:
- Dynamic Fields Plugin
- Dynamic Rows plugin
- Add Remove Rows Plugin
This plugin requires jQuery and jQuery UI Sortable.
<div class="repeat">
<table class="wrapper" width="100%">
<thead>
<tr>
<td width="10%" colspan="4"><span class="add">Add</span></td>
</tr>
</thead>
<tbody class="container">
<tr class="template row">
<td width="10%"><span class="move">Move</span></td>
<td width="10%">An Input Field</td>
<td width="70%">
<input type="text" name="an-input-field[{{row-count-placeholder}}]" />
</td>
<td width="10%"><span class="remove">Remove</span></td>
</tr>
</tbody>
</table>
</div>
jQuery(function() {
jQuery('.repeat').each(function() {
jQuery(this).repeatable_fields();
});
});
wrapper: '.wrapper',
container: '.container',
row: '.row',
add: '.add',
remove: '.remove',
move: '.move',
template: '.template',
before_add: null,
after_add: after_add,
before_remove: null,
after_remove: null,
- wrapper
- Specifies an element that acts as a wrapper.
- container
- Specifies an element within the wrapper which acts as a container.
- row
- Specifies an element within the container that acts as a row holder. The row is what is repeated.
- add
- Specifies an element within the wrapper which let's you add more more
- remove
- Specifies an element within the row which let's you remove the current row
- move
- Specifies an element within the row which let's you reposition the current row.
- template
- Specifies an element within the container which acts as a row template.
- before_add
- Specifies a function to run before a row is added
- after_add
- Specifies a function to run after a row is added
- before_remove
- Specifies a function to run before a row is removed
- after_remove
- Specifies a function to run after a row is removed