Repeater是一个用于创建可重复表单组的jQuery插件,它允许用户在表单中复制和删除一组可重复的字段。
它适用于您希望用户创建和管理他们经常使用的数据集(例如,常旅客号码、信用卡号码),或添加他们将来在其他表单上重复需要的新数据集的情况。
1.在jQuery之后下载并包含中继器插件的缩小版。
- <script src="/path/to/cdn/jquery.min.js"></script>
- <script src="/path/to/jquery.repeater.min.js"></script>
2.使用以下内容创建可重复的表单组数据
属性:
- <form action="#" class="repeater" enctype="multipart/form-data">
- <div data-repeater-list="group-a">
- <div data-repeater-item>
- <input type="text" name="text-input" value="A"/>
- <textarea name="textarea-input">A</textarea>
- <input type="radio" name="radio-input" value="A" checked/>
- <input type="radio" name="radio-input" value="B"/>
- <input type="checkbox" name="checkbox-input" value="A" checked/>
- <input type="checkbox" name="checkbox-input" value="B"/>
- <select name="select-input">
- <option value="A" selected>A</option>
- <option value="B">B</option>
- </select>
- <select name="multiple-select-input" multiple>
- <option value="A" selected>A</option>
- <option value="B" selected>B</option>
- </select>
- <input data-repeater-delete type="button" value="Delete"/>
- </div>
- </div>
- <input data-repeater-create type="button" value="Add"/>
- </form>
3.初始化表单上的插件:
- $('.repeater').repeater({
- // options and callbacks here
- });
4.该插件还支持嵌套的表单字段:
- <form action="#" class="outer-repeater">
- <div data-repeater-list="outer-group" class="outer">
- <div data-repeater-item class="outer">
- <input type="text" name="text-input" value="A" class="outer"/>
- <input data-repeater-delete type="button" value="Delete" class="outer"/>
- <div class="inner-repeater">
- <div data-repeater-list="inner-group" class="inner">
- <div data-repeater-item class="inner">
- <input type="text" name="inner-text-input" value="B" class="inner"/>
- <input data-repeater-delete type="button" value="Delete" class="inner"/>
- </div>
- </div>
- <input data-repeater-create type="button" value="Add" class="inner"/>
- </div>
- </div>
- </div>
- <input data-repeater-create type="button" value="Add" class="outer"/>
- </form>
- $('.outer-repeater').repeater({
- repeaters: [{
- selector: '.inner-repeater',
- }]
- });
5.设置重复字段的默认值:
- $('.repeater').repeater({
- defaultValues: {
- 'textarea-input': 'foo',
- 'text-input': 'bar',
- 'select-input': 'B',
- 'checkbox-input': ['A', 'B'],
- 'radio-input': 'B'
- },
- });
6.确定是否允许删除表单中的第一个组。默认值:“false”。
- $('.repeater').repeater({
- isFirstItemUndeletable: true,
- });
7.确定是否生成空表单。默认值:“false”。
- <form action="#" class="repeater" enctype="multipart/form-data">
- <div data-repeater-list="group-a">
- <div data-repeater-item style="display:none">
- <input type="text" name="text-input" value="A"/>
- <textarea name="textarea-input">A</textarea>
- <input type="radio" name="radio-input" value="A" checked/>
- <input type="radio" name="radio-input" value="B"/>
- <input type="checkbox" name="checkbox-input" value="A" checked/>
- <input type="checkbox" name="checkbox-input" value="B"/>
- <select name="select-input">
- <option value="A" selected>A</option>
- <option value="B">B</option>
- </select>
- <select name="multiple-select-input" multiple>
- <option value="A" selected>A</option>
- <option value="B" selected>B</option>
- </select>
- <input data-repeater-delete type="button" value="Delete"/>
- </div>
- </div>
- <input data-repeater-create type="button" value="Add"/>
- </form>
- $('.outer-repeater').repeater({
- initEmpty: true,
- });
8.回调函数。
- $('.outer-repeater').repeater({
- show: function () {
- $(this).slideDown();
- },
- hide: function (deleteElement) {
- if(confirm('Are you sure you want to delete this element?')) {
- $(this).slideUp(deleteElement);
- }
- },
- ready: function (setIndexes) {
- }
- });
9.获取表单字段的值。
- $('.repeater').repeaterVal();