数据转换和验证功能 小型可编辑表

  • 源码大小:12.16KB
  • 所需积分:1积分
  • 源码编号:19JP-3247
  • 浏览次数:830次
  • 最后更新:2023年05月22日
  • 所属栏目:表格
本站默认解压密码:19jp.com 或 19jp_com

简介

一个小型jQuery插件,它可以将普通的HTML表转换为可编辑的表,并支持数据转换和值验证。

更多功能:

  • 单击单元格开始编辑。
  • 在表单元格发生更改后执行函数。
  • 复制(重复)表行。
  • 动态数据渲染。

如何使用它:

1.要开始,请包括jquery-可编辑表.min.js加载最新的jQuery库之后。

  1. <script src="/path/to/cdn/jquery.slim.min.js"></script>
  2. <script src="/path/to/jquery-editable-table.min.js"></script>

2.创建一个带有预定义标题单元格的空HTML表。

  1. <table id="example-table" class="my-table">
  2. <thead>
  3. <tr>
  4. <th>Id</th>
  5. <th>Custom Color Example</th>
  6. <th>Secret Value</th>
  7. <th>Number Example</th>
  8. </tr>
  9. </thead>
  10. <tbody>
  11. </tbody>
  12. </table>

3.初始化插件并为每列配置可编辑的单元格。

  1. let myEditableTable = $('#example-table').editableTable({
  2. columns: [
  3. // column 1
  4. {
  5. index: 0,
  6. name: 'id',
  7. removeRowIfCleared: true,
  8. isValid: (newVal, data) => {
  9. // do something
  10. }
  11. },
  12. // column 2
  13. {
  14. index: 1,
  15. name: 'color',
  16. classes: ['text-center'], // additional CSS classes
  17. isValid: (newVal, data) => {
  18. // do something
  19. }
  20. afterAdd: function (addedColor, cell) {
  21. // do something
  22. }
  23. afterChange: function (newColor, cell) {
  24. // do something
  25. }
  26. convertOut: (outgoingVal) => {
  27. // do something
  28. }
  29. },
  30. // hidden column
  31. {
  32. index: 2,
  33. name: 'secretValue',
  34. isHidden: true
  35. },
  36. // column 4
  37. {
  38. index: 3,
  39. name: 'number',
  40. classes: ['text-end'],
  41. isValid: (val) => {
  42. val = parseInt(val);
  43. return !isNaN(val) && Number.isInteger(val);
  44. },
  45. convertOut: (outgoingVal) => {
  46. // Convert to a number
  47. return Number(outgoingVal);
  48. },
  49. }
  50. ]
  51. });

4.使用您提供的数据填充HTML表。

  1. myEditableTable.setData([
  2. {
  3. id: 0,
  4. color: '#eb348c',
  5. number: 321,
  6. secretValue: 'secret0'
  7. },
  8. {
  9. id: 1,
  10. color: '#34bdeb',
  11. number: 123,
  12. secretValue: 'secret1'
  13. },
  14. {
  15. id: 2,
  16. color: '#000',
  17. number: 666,
  18. secretValue: 'secret2'
  19. }
  20. ]);

5.向可编辑表中添加新行。

  1. myEditableTable.addRow({
  2. id: 5,
  3. color: '#FFFFFF',
  4. number: 0,
  5. secretValue: 'secretNewwwww',
  6. });

6.将动作按钮添加到每一行。

  1. let myEditableTable = $('#example-table').editableTable({
  2. columns: [
  3. // columns
  4. ],
  5. actions: [
  6. {
  7. label: '<button>Delete</button>',
  8. action: (e, row) => {
  9. // Remove the row from the table
  10. row.remove();
  11. }
  12. },
  13. ]
  14. });

7.获取当前表格数据。

  1. myEditableTable.getData();

8.清除所有表格数据。

  1. myEditableTable.clear();

更新日志:

2022-12-28

  • 删除了格式错误的XHTML(空属性)

2022-01-05

  • 添加了“操作列”以添加基于行的按钮

2021-12-04

  • 格式化更改

2021-09-27

  • Bugfix:索引错误

预览截图