一个小型jQuery插件,它可以将普通的HTML表转换为可编辑的表,并支持数据转换和值验证。
1.要开始,请包括jquery-可编辑表.min.js
加载最新的jQuery库之后。
- <script src="/path/to/cdn/jquery.slim.min.js"></script>
- <script src="/path/to/jquery-editable-table.min.js"></script>
2.创建一个带有预定义标题单元格的空HTML表。
- <table id="example-table" class="my-table">
- <thead>
- <tr>
- <th>Id</th>
- <th>Custom Color Example</th>
- <th>Secret Value</th>
- <th>Number Example</th>
- </tr>
- </thead>
- <tbody>
- </tbody>
- </table>
3.初始化插件并为每列配置可编辑的单元格。
- let myEditableTable = $('#example-table').editableTable({
- columns: [
- // column 1
- {
- index: 0,
- name: 'id',
- removeRowIfCleared: true,
- isValid: (newVal, data) => {
- // do something
- }
- },
- // column 2
- {
- index: 1,
- name: 'color',
- classes: ['text-center'], // additional CSS classes
- isValid: (newVal, data) => {
- // do something
- }
- afterAdd: function (addedColor, cell) {
- // do something
- }
- afterChange: function (newColor, cell) {
- // do something
- }
- convertOut: (outgoingVal) => {
- // do something
- }
- },
- // hidden column
- {
- index: 2,
- name: 'secretValue',
- isHidden: true
- },
- // column 4
- {
- index: 3,
- name: 'number',
- classes: ['text-end'],
- isValid: (val) => {
- val = parseInt(val);
- return !isNaN(val) && Number.isInteger(val);
- },
- convertOut: (outgoingVal) => {
- // Convert to a number
- return Number(outgoingVal);
- },
- }
- ]
- });
4.使用您提供的数据填充HTML表。
- myEditableTable.setData([
- {
- id: 0,
- color: '#eb348c',
- number: 321,
- secretValue: 'secret0'
- },
- {
- id: 1,
- color: '#34bdeb',
- number: 123,
- secretValue: 'secret1'
- },
- {
- id: 2,
- color: '#000',
- number: 666,
- secretValue: 'secret2'
- }
- ]);
5.向可编辑表中添加新行。
- myEditableTable.addRow({
- id: 5,
- color: '#FFFFFF',
- number: 0,
- secretValue: 'secretNewwwww',
- });
6.将动作按钮添加到每一行。
- let myEditableTable = $('#example-table').editableTable({
- columns: [
- // columns
- ],
- actions: [
- {
- label: '<button>Delete</button>',
- action: (e, row) => {
- // Remove the row from the table
- row.remove();
- }
- },
- ]
- });
7.获取当前表格数据。
- myEditableTable.getData();
8.清除所有表格数据。
- myEditableTable.clear();
2022-12-28
2022-01-05
2021-12-04
2021-09-27