1. /***
  2. * name:加载表格或表单数据[通用]
  3. * name:load-table-or-form-data-common.js
  4. *
  5. * author:zengtai
  6. * date:2017-07-19 1501
  7. * notice:原生javascript;兼容所有浏览器版本
  8. */
  9.  
  10. /* *
  11. * 加载指定行的表格数据
  12. * @param tableId:表格ID (指定数据类型:string)
  13. * @param lineNumber:所在的表格行号 (指定数据类型:number)
  14. * @return lineData:返回该行数据的数组
  15. * @notice lineData仅包含tbody部分的内容
  16. * @notice lineData将不包含td 的title属性为"useless-data"的文本数据
  17. */
  18. function getTableLineData(tableId, lineNumber) {
  19. //判断参数
  20. if (arguments.length != 2) {
  21. throw new Error("Arguments' length is not qualified!");
  22. }
  23. if (typeof(tableId) != 'string' || typeof(lineNumber) != 'number') {
  24. throw new Error("Arguments is not qualified!");
  25. }
  26.  
  27. var lineData = []; //行数据
  28.  
  29. //加载行数据到lineData中
  30. var table = document.getElementById(tableId);
  31. var lines = table.getElementsByTagName('tr');
  32. var line; //选中行
  33. var tds; //选中行的单元格集合
  34.  
  35. /***
  36. * 去除thead的影响,在getElementsByTagName('tr') 方法中;
  37. * thead将可以作为tr被索引到,但不一定所有的表格中均会使用thead
  38. */
  39. var line = lines[lineNumber - 1]; //默认第lineNumber行是选中行
  40. if (table.getElementsByTagName('thead')) { //排除 存在 thead标签的对dom操作的影响
  41. line = lines[lineNumber];
  42. }
  43.  
  44. var tds = line.getElementsByTagName('td'); //支持
  45. for (var i = 0; i < tds.length; i++) {
  46. if (tds[i].getAttribute('title') != 'useless-data') {
  47. lineData.push(tds[i].innerText.trim());
  48. }
  49. }
  50.  
  51. return lineData;
  52. }
  53.  
  54. /**
  55. * 加载数据到表单元素中
  56. * @param formId:表单ID;[不一定是Form元素,但一定得是填充数据的表单控件的祖先元素]
  57. * @param datas:数组数据[顺序加载到表单控件中]
  58. * @param datas_config:
  59. * 数组数据的配置项配置:数组中需要加载的元素对应值为true;反之为false;)
  60. * @notice 需要填充数据的项必须设置属性data-fill为'true'
  61. * @notice 需要填充数据的项必须设置类名 'data-fill'
  62. */
  63. function loadDatasToForms(formId, datas, datas_config) {
  64. //判断参数
  65. if (arguments.length != 3) {
  66. throw new Error("Arguments' length is not qualified!");
  67. }
  68. if (typeof(formId) != 'string' || ((datas instanceof Array) != true)) {
  69. throw new Error("Arguments is not qualified!");
  70. }
  71.  
  72. var form = document.getElementById(formId);
  73. var inputs = form.getElementsByClassName('data-fill');
  74.  
  75. var j = 0;
  76. for (var i = 0; i < datas.length; i++) {
  77. if (datas_config[i] == true) {
  78. inputs[j].value = datas[i];
  79. // console.log('test:inputs['+ j +']:' + inputs[j].value);
  80. // console.log('test:datas['+ i +']:' + datas[i]);
  81. j++;
  82. }
  83. }
  84.  
  85. }

 

使用示例:

加载数据到模态框:

//step1.函数:

  1. //加载表格行数据到模态框中
  2. function doLoadLineDatasToModal(tableId, modalId, lineNumber) {
  3. var datas = getTableLineData(tableId, lineNumber); //获取表格行数据,返回该行数据的数组
  4. var data_config = [false, true, true, false]; //配置要装载到模态框中的数组元素(配置方法见该API)
  5. loadDatasToForms(modalId, datas, data_config); //将数组数据装载到模态框中
  6.  
  7. }

//step2:表格

  1. <table class="table table-border table-striped table-text-veritical-middle" id="independentStatistic_table">
  2. <thead style="background-color: #118ee9;color: white">
  3. <th style="width: 15%;color:white">日期</th>
  4. <th style="width: 15%;color:white">病历份数</th>
  5. <th style="width: 40%;color:white">病历页数</th>
  6. <th style="width: 15%;color:white">操作</th>
  7. </thead>
  8. <tbody>
  9. <tr>
  10. <td>2017-03-07</td>
  11. <td>30</td>
  12. <td>33</td>
  13. <td>
  14. <a href="" class="btn btn_view" data-toggle="modal" data-target="#myModal" onclick="doLoadLineDatasToModal('independentStatistic_table','load-modal-form',1);">修改</a>
  15. </td>
  16. </tr>
  17. <tr>
  18. <td>2017-03-08</td>
  19. <td>125</td>
  20. <td>23</td>
  21. <td>
  22. <a href="" class="btn btn_view" data-toggle="modal" data-target="#myModal" onclick="doLoadLineDatasToModal('independentStatistic_table','load-modal-form',2);">修改</a>
  23. </td>
  24. </tr>
  25. <tr>
  26. <td>2017-03-17</td>
  27. <td>20</td>
  28. <td>87</td>
  29. <td>
  30. <a href="" class="btn btn_view" data-toggle="modal" data-target="#myModal" onclick="doLoadLineDatasToModal('independentStatistic_table','load-modal-form',3);">修改</a>
  31. </td>
  32. </tr>
  33. <tr>
  34. <td>2017-04-09</td>
  35. <td>45</td>
  36. <td>98</td>
  37. <td>
  38. <a href="" class="btn btn_view" data-toggle="modal" data-target="#myModal" onclick="doLoadLineDatasToModal('independentStatistic_table','load-modal-form',4);">修改</a>
  39. </td>
  40. </tr>
  41. <tr>
  42. <td>2017-01-07</td>
  43. <td>19</td>
  44. <td>32</td>
  45. <td>
  46. <a href="" class="btn btn_view" data-toggle="modal" data-target="#myModal" onclick="doLoadLineDatasToModal('independentStatistic_table','load-modal-form',5);">修改</a>
  47. </td>
  48. </tr>
  49. <tr>
  50. <td>2017-03-28</td>
  51. <td>56</td>
  52. <td>45</td>
  53. <td>
  54. <a href="" class="btn btn_view" data-toggle="modal" data-target="#myModal" onclick="doLoadLineDatasToModal('independentStatistic_table','load-modal-form',6);">修改</a>
  55. </td>
  56. </tr>
  57. <tr>
  58. <td>2017-05-02</td>
  59. <td>2</td>
  60. <td>56</td>
  61. <td>
  62. <a href="" class="btn btn_view" data-toggle="modal" data-target="#myModal" onclick="doLoadLineDatasToModal('independentStatistic_table','load-modal-form',7);">修改</a>
  63. </td>
  64. </tr>
  65. <tr>
  66. <td>2017-06-06</td>
  67. <td>63</td>
  68. <td>36</td>
  69. <td>
  70. <a href="" class="btn btn_view" data-toggle="modal" data-target="#myModal" onclick="doLoadLineDatasToModal('independentStatistic_table','load-modal-form',8);">修改</a>
  71. </td>
  72. </tr>
  73. <tr>
  74. <td>2017-04-26</td>
  75. <td>89</td>
  76. <td>60</td>
  77. <td>
  78. <a href="" class="btn btn_view" data-toggle="modal" data-target="#myModal" onclick="doLoadLineDatasToModal('independentStatistic_table','load-modal-form',9);">修改</a>
  79. </td>
  80. </tr>
  81. <tr>
  82. <td>2017-03-06</td>
  83. <td>30</td>
  84. <td>33</td>
  85. <td>
  86. <a href="" class="btn btn_view" data-toggle="modal" data-target="#myModal" onclick="doLoadLineDatasToModal('independentStatistic_table','load-modal-form',10);">修改</a>
  87. </td>
  88. </tr>
  89. </tbody>
  90. </table>

  

//step3:效果图

 

JavaScript之加载表格、表单行数据[插件]的更多相关文章

  1. 【EF学习笔记08】----------加载关联表的数据 显式加载

    显式加载 讲解之前,先来看一下我们的数据库结构:班级表 学生表 加载从表集合类型 //显示加载 Console.WriteLine("=========查询集合===========&quo ...

  2. 【EF学习笔记07】----------加载关联表的数据 贪婪加载

    讲解之前,先来看一下我们的数据库结构:班级表 学生表 贪婪加载 //贪婪加载 using (var db = new Entities()) { var classes = db.Classes.Wh ...

  3. 【EF学习笔记06】----------加载关联表的数据 延迟加载

    讲解之前,先来看一下我们的数据库结构:班级表 学生表 延迟加载 //延迟加载 using (var db = new Entities()) { //查询班级 var classes = (from ...

  4. jqgrid 分页时,清空原表格数据加载返回的新数据

    由于,我们是动态分页,分页后的数据是在触发分页后动态加载而来.如何使jqgrid清空原数据而加载新数据? 1)调用jqgrid的 clearGridData 方法清空表格数据 2)调用jqgrid的  ...

  5. django:bootstrap table加载django返回的数据

    bootstrap table加载表格数据有两类方式: 一种通过data属性的方式配置,一种是javascipt方式配置 这里看js配置方式: 1.当数据源为.json文件时 url参数写上json文 ...

  6. javascript模块加载框架seajs详解

    SeaJS是一个遵循commonJS规范的javascript模块加载框架,可以实现javascript的模块化开发和模块化加载(模块可按需加载或全部加载).SeaJS可以和jQuery完美集成,使用 ...

  7. 前端性能优化:细说JavaScript的加载与执行

    本文主要是从性能优化的角度来探讨JavaScript在加载与执行过程中的优化思路与实践方法,既是细说,文中在涉及原理性的地方,不免会多说几句,还望各位读者保持耐心,仔细理解,请相信,您的耐心付出一定会 ...

  8. KnockoutJS 3.X API 第七章 其他技术(1) 加载和保存JSON数据

    Knockout允许您实现复杂的客户端交互性,但几乎所有Web应用程序还需要与服务器交换数据,或至少将本地存储的数据序列化. 最方便的交换或存储数据的方式是JSON格式 - 大多数Ajax应用程序今天 ...

  9. 转: javascript模块加载框架seajs详解

    javascript模块加载框架seajs详解 SeaJS是一个遵循commonJS规范的javascript模块加载框架,可以实现javascript的模块化开发和模块化加载(模块可按需加载或全部加 ...

随机推荐

  1. Luogu4238 【模板】多项式求逆(NTT)

    http://blog.miskcoo.com/2015/05/polynomial-inverse 好神啊! B(x)=B'(x)·(2-A(x)B'(x)) 注意ntt的时候防止项数溢出,即将多项 ...

  2. Dapper 介绍

    转载:http://***/html/itweb/20130918/125194_125199_125210.htm .NET 轻量级 ORM 框架 - Dapper 介绍 Dapper简单介绍: D ...

  3. ACM-ICPC 2018 沈阳赛区网络预赛 J. Ka Chang (分块思想)

    题目链接:https://nanti.jisuanke.com/t/31451 题意: 给你一颗树,树上各点有初始权值,你有两种操作: 1. 给树中深度为l的点全部+x,(根节点为1,深度为0) 2. ...

  4. bzoj 2599: [IOI2011]Race (点分治 本地过了就是过了.jpg)

    题面:(复制别人的...) Description 给一棵树,每条边有权.求一条路径,权值和等于K,且边的数量最小. Input 第一行 两个整数 n, k第二..n行 每行三个整数 表示一条无向边的 ...

  5. APIO2016赛艇

    首先每个学校的边界范围是\(1e9\),肯定不能直接\(dp[i][j]\)表示前i所学校,第\(i\)所学校派出\(j\)艘船,但\(b<=500\)所有考虑把\(a,b\)离散,第二维改为当 ...

  6. 自学Zabbix之路15.1 Zabbix数据库表结构简单解析-Hosts表、Hosts_groups表、Interface表

    点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 自学Zabbix之路15.1 Zabbix数据库表结构简单解析-Hosts表.Hosts_grou ...

  7. LoadRunner回放乱码

    乱码的原因和服务器字符集编码相关,默认LR是gbk解码,如果服务器是utf8,那么需要改为utf8解码,这样中文就显示正常了. 通过查看源码,可以知道服务器的编码方式:<meta charset ...

  8. Java -- JDBC 学习--通过Statement进行数据库更新操作

    通过 JDBC 向指定的数据表中插入一条记录. 1. Statement: 用于执行 SQL 语句的对象 1). 通过 Connection 的 createStatement() 方法来获取 2). ...

  9. 愚人节CDACMFinal

    这个啊,愚人节的ACM之赛,其实还是很有意思的.之前因为星期天不能休息还怨声载道,但真的打起来了就是觉得特别有意思. 我们队,最开始乱搞电脑,cmd都没有办法调用了,霎时间十分慌张(而且我过于慌张忘了 ...

  10. 洛谷P4413 R2

    好,这是一道巨水题...... #include <cstdio> using namespace std; typedef long long LL; int main() { LL a ...