可编辑表格,ajax编辑表格 js

前端之家收集整理的这篇文章主要介绍了可编辑表格,ajax编辑表格 js前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

调用js文件 CL_TableEdit-0.0.1.js


  1. /**
  2. * CL_TableEdit 编辑插件(适用于表格内修改单元格文本)
  3. * Author: ..
  4. * Email: lu_chuliang@sina.com
  5. * Version: 0.0.1
  6. * Date: Fri Jan 11 2013 11:47:42 GMT+0800 (中国标准时间)
  7. *
  8. * 原型:
  9. * CL_TableEdit(obj[,callback[,arg]])
  10. * @obj 需要更改内容的dom元素
  11. * @callback 可选,内容更改前调用函数函数返回值将为更改后的内容),如果此参数被缺省,则直接将输入的内容修改至dom元素
  12. * @arg 可选,在调用callback时需要传递的参数(callback函数将能接收到此参数)
  13. **/
  14. function CL_TableEdit(obj,callback,arg){
  15. var tag = obj.firstChild.tagName;
  16. if (typeof(tag) != "undefined" && tag.toLowerCase() == "input")
  17. return;
  18. /* 保存原始的内容 */
  19. var org = obj.innerHTML;
  20. var val = obj.innerText ? obj.innerText : obj.textContent;
  21.  
  22. /* 创建一个输入框 */
  23. var txt = document.createElement("INPUT");
  24. txt.value = (val == 'N/A') ? '' : val;
  25. //txt.style.width = (obj.offsetWidth) + "px" ;
  26. /* 隐藏对象中的内容,并将输入框加入到对象中 */
  27. obj.innerHTML = "";
  28. obj.appendChild(txt);
  29. txt.focus();
  30. /* 编辑区输入事件处理函数 */
  31. txt.onkeypress = function(e){
  32. var evt = e || window.event;
  33. switch(e.keyCode | e.which | e.charCode){
  34. case 13:
  35. txt.blur();
  36. break;
  37. case 27:
  38. obj.innerHTML = org;
  39. break;
  40. }
  41. }
  42. /* 编辑区失去焦点的处理函数 */
  43. txt.onblur = function(e){
  44. var val = txt.value;
  45. if (val.length > 0 && val!=org){
  46. if(typeof(callback)=="undefined"){
  47. obj.innerHTML = val;
  48. }
  49. else if(typeof(callback)=="function"){
  50. var r = callback(val,arg);
  51. if(typeof(r)=="string")
  52. obj.innerHTML = r;
  53. else
  54. obj.innerHTML = org;
  55. }
  56. else
  57. obj.innerHTML = org;
  58. }
  59. else
  60. obj.innerHTML = org;
  61. }
  62. }

例子:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <Meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>CL_TableEdit示例</title>
  6. <script type="text/javascript" src="CL_TableEdit-0.0.1.js"></script>
  7. <style type="text/css">
  8. <!--
  9. input {
  10. width:100%;
  11. height:100%;
  12. margin: 0px;
  13. padding: 0px;
  14. border-top-style: none;
  15. border-right-style: none;
  16. border-bottom-style: none;
  17. border-left-style: none;
  18. background-color: #DDFFEE;
  19. color: #FF0000;
  20. font-size: 14px;
  21. }
  22. td {
  23. word-break:break-all;
  24. }
  25. body {
  26. font-size: 16px;
  27. }
  28. #idid {
  29. border: 1px solid #99CCFF;
  30. height: 22px;
  31. }
  32. -->
  33. </style>
  34. </head>
  35. 回车键确定修改,Esc键取消修改
  36. <body><table border="1" cellspacing="0" cellpadding="0" width="100%" style="table-layout:fixed;">
  37. <tr>
  38. <td onclick="CL_TableEdit(this)">123456</td>
  39. <td onclick="CL_TableEdit(this)">123456</td>
  40. <td onclick="CL_TableEdit(this)">123456</td>
  41. <td onclick="CL_TableEdit(this)">123456</td>
  42. <td onclick="CL_TableEdit(this)">123456</td>
  43. <td onclick="CL_TableEdit(this)">123456</td>
  44. <td onclick="CL_TableEdit(this)">123456</td>
  45. <td onclick="CL_TableEdit(this)">123456</td>
  46. <td onclick="CL_TableEdit(this)">123456</td>
  47. <td onclick="CL_TableEdit(this)">123456</td>
  48. </tr>
  49. <tr>
  50. <td onclick="CL_TableEdit(this)">123456</td>
  51. <td onclick="CL_TableEdit(this)">123456</td>
  52. <td onclick="CL_TableEdit(this)">123456</td>
  53. <td onclick="CL_TableEdit(this)">123456</td>
  54. <td onclick="CL_TableEdit(this)">123456</td>
  55. <td onclick="CL_TableEdit(this)">123456</td>
  56. <td onclick="CL_TableEdit(this)">123456</td>
  57. <td onclick="CL_TableEdit(this)">123456</td>
  58. <td onclick="CL_TableEdit(this)">123456</td>
  59. <td onclick="CL_TableEdit(this)">123456</td>
  60. </tr>
  61. <tr>
  62. <td onclick="CL_TableEdit(this)">123456</td>
  63. <td onclick="CL_TableEdit(this)">123456</td>
  64. <td onclick="CL_TableEdit(this)">123456</td>
  65. <td onclick="CL_TableEdit(this)">123456</td>
  66. <td onclick="CL_TableEdit(this)">123456</td>
  67. <td onclick="CL_TableEdit(this)">123456</td>
  68. <td onclick="CL_TableEdit(this)">123456</td>
  69. <td onclick="CL_TableEdit(this)">123456</td>
  70. <td onclick="CL_TableEdit(this)">123456</td>
  71. <td onclick="CL_TableEdit(this)">123456</td>
  72. </tr>
  73. <tr>
  74. <td onclick="CL_TableEdit(this)">123456</td>
  75. <td onclick="CL_TableEdit(this)">123456</td>
  76. <td onclick="CL_TableEdit(this)">123456</td>
  77. <td onclick="CL_TableEdit(this)">123456</td>
  78. <td onclick="CL_TableEdit(this)">123456</td>
  79. <td onclick="CL_TableEdit(this)">123456</td>
  80. <td onclick="CL_TableEdit(this)">123456</td>
  81. <td onclick="CL_TableEdit(this)">123456</td>
  82. <td onclick="CL_TableEdit(this)">123456</td>
  83. <td onclick="CL_TableEdit(this)">123456</td>
  84. </tr>
  85. <tr>
  86. <td onclick="CL_TableEdit(this)">123456</td>
  87. <td onclick="CL_TableEdit(this)">123456</td>
  88. <td onclick="CL_TableEdit(this)">123456</td>
  89. <td onclick="CL_TableEdit(this)">123456</td>
  90. <td onclick="CL_TableEdit(this)">123456</td>
  91. <td onclick="CL_TableEdit(this)">123456</td>
  92. <td onclick="CL_TableEdit(this)">123456</td>
  93. <td onclick="CL_TableEdit(this)">123456</td>
  94. <td onclick="CL_TableEdit(this)">123456</td>
  95. <td onclick="CL_TableEdit(this)">123456</td>
  96. </tr>
  97. <tr>
  98. <td onclick="CL_TableEdit(this)">123456</td>
  99. <td onclick="CL_TableEdit(this)">123456</td>
  100. <td onclick="CL_TableEdit(this)">123456</td>
  101. <td onclick="CL_TableEdit(this)">123456</td>
  102. <td onclick="CL_TableEdit(this)">123456</td>
  103. <td onclick="CL_TableEdit(this)">123456</td>
  104. <td onclick="CL_TableEdit(this)">123456</td>
  105. <td onclick="CL_TableEdit(this)">123456</td>
  106. <td onclick="CL_TableEdit(this)">123456</td>
  107. <td onclick="CL_TableEdit(this)">123456</td>
  108. </tr>
  109. <tr>
  110. <td onclick="CL_TableEdit(this)">123456</td>
  111. <td onclick="CL_TableEdit(this)">123456</td>
  112. <td onclick="CL_TableEdit(this)">123456</td>
  113. <td onclick="CL_TableEdit(this)">123456</td>
  114. <td onclick="CL_TableEdit(this)">123456</td>
  115. <td onclick="CL_TableEdit(this)">123456</td>
  116. <td onclick="CL_TableEdit(this)">123456</td>
  117. <td onclick="CL_TableEdit(this)">123456</td>
  118. <td onclick="CL_TableEdit(this)">123456</td>
  119. <td onclick="CL_TableEdit(this)">123456</td>
  120. </tr>
  121. <tr>
  122. <td onclick="CL_TableEdit(this)">123456</td>
  123. <td onclick="CL_TableEdit(this)">123456</td>
  124. <td onclick="CL_TableEdit(this)">123456</td>
  125. <td onclick="CL_TableEdit(this)">123456</td>
  126. <td onclick="CL_TableEdit(this)">123456</td>
  127. <td onclick="CL_TableEdit(this)">123456</td>
  128. <td onclick="CL_TableEdit(this)">123456</td>
  129. <td onclick="CL_TableEdit(this)">123456</td>
  130. <td onclick="CL_TableEdit(this)">123456</td>
  131. <td onclick="CL_TableEdit(this)">123456</td>
  132. </tr>
  133. <tr>
  134. <td onclick="CL_TableEdit(this)">123456</td>
  135. <td onclick="CL_TableEdit(this)">123456</td>
  136. <td onclick="CL_TableEdit(this)">123456</td>
  137. <td onclick="CL_TableEdit(this)">123456</td>
  138. <td onclick="CL_TableEdit(this)">123456</td>
  139. <td onclick="CL_TableEdit(this)">123456</td>
  140. <td onclick="CL_TableEdit(this)">123456</td>
  141. <td onclick="CL_TableEdit(this)">123456</td>
  142. <td onclick="CL_TableEdit(this)">123456</td>
  143. <td onclick="CL_TableEdit(this)">123456</td>
  144. </tr>
  145. <tr>
  146. <td onclick="CL_TableEdit(this)">123456</td>
  147. <td onclick="CL_TableEdit(this)">123456</td>
  148. <td onclick="CL_TableEdit(this)">123456</td>
  149. <td onclick="CL_TableEdit(this)">123456</td>
  150. <td onclick="CL_TableEdit(this)">123456</td>
  151. <td onclick="CL_TableEdit(this)">123456</td>
  152. <td onclick="CL_TableEdit(this)">123456</td>
  153. <td onclick="CL_TableEdit(this)">123456</td>
  154. <td onclick="CL_TableEdit(this)">123456</td>
  155. <td onclick="CL_TableEdit(this)">123456</td>
  156. </tr>
  157. </table>
  158.  
  159.  
  160. <br />
  161. <br />
  162. <br />
  163. <br />
  164. <br />
  165. 执行函数
  166. <script>
  167. function onEdit(str,arg){
  168.  
  169. $.ajax({
  170. async:false,type:"POST",url:"ad_xiaohao_his.PHP",data:{id:arg,dopost:'update',date_xiaohao:str},success:function(data){
  171. if(data=='ok'){
  172. se=1;
  173. }else {
  174. alert(data);
  175. }
  176. },error:function(data){
  177. alert('网络连接失败');
  178. }
  179. });
  180. document.getElementById("show").innerHTML = "输入的内容:"+str+"<br />传递的参数:"+arg+"<br />函数返回:"+str;
  181. alert(arg);
  182. return str;//返回的内容才是表格里的单元格的最后显示内容,如果用ajax提交数据的话,请使用非异步模式ajax
  183. }
  184. </script>
  185. <div id="show"></div>
  186. <table border="1" cellspacing="0" cellpadding="0" width="100%" style="table-layout:fixed;">
  187. <tr>
  188. <td onclick="CL_TableEdit(this,onEdit,'1-1')">123456</td>
  189. <td onclick="CL_TableEdit(this,'1-2')">123456</td>
  190. <td onclick="CL_TableEdit(this,'1-3')">123456</td>
  191. <td onclick="CL_TableEdit(this,\"<?PHP echo "id='sdsdsdsd'&val='dsds ds'" ?>\")">123456</td>
  192. <td onclick="CL_TableEdit(this,'1-5')">123456</td>
  193. <td onclick="CL_TableEdit(this,'1-6')">123456</td>
  194. <td onclick="CL_TableEdit(this,'1-7')">123456</td>
  195. <td onclick="CL_TableEdit(this,'1-8')">123456</td>
  196. <td onclick="CL_TableEdit(this,'1-9')">123456</td>
  197. <td onclick="CL_TableEdit(this,'1-0')">123456</td>
  198. </tr>
  199. <tr>
  200. <td onclick="CL_TableEdit(this,'2-1')">123456</td>
  201. <td onclick="CL_TableEdit(this,'2-2')">123456</td>
  202. <td onclick="CL_TableEdit(this,'2-3')">123456</td>
  203. <td onclick="CL_TableEdit(this,'na=')">123456</td>
  204. <td onclick="CL_TableEdit(this,'2-5')">123456</td>
  205. <td onclick="CL_TableEdit(this,'2-6')">123456</td>
  206. <td onclick="CL_TableEdit(this,'2-7')">123456</td>
  207. <td onclick="CL_TableEdit(this,'2-8')">123456</td>
  208. <td onclick="CL_TableEdit(this,'2-9')">123456</td>
  209. <td onclick="CL_TableEdit(this,'2-0')">123456</td>
  210. </tr>
  211. <tr>
  212. <td onclick="CL_TableEdit(this,'3-1')">123456</td>
  213. <td onclick="CL_TableEdit(this,'3-2')">123456</td>
  214. <td onclick="CL_TableEdit(this,'3-3')">123456</td>
  215. <td onclick="CL_TableEdit(this,'3-4')">123456</td>
  216. <td onclick="CL_TableEdit(this,'3-5')">123456</td>
  217. <td onclick="CL_TableEdit(this,'3-6')">123456</td>
  218. <td onclick="CL_TableEdit(this,'3-7')">123456</td>
  219. <td onclick="CL_TableEdit(this,'3-8')">123456</td>
  220. <td onclick="CL_TableEdit(this,'3-9')">123456</td>
  221. <td onclick="CL_TableEdit(this,'3-0')">123456</td>
  222. </tr>
  223. </table>
  224.  
  225. <br />
  226. <br />
  227. <br />
  228. 其实,并不一定要在表格里才能用,下面这个是一个div:
  229. <div id="idid" onclick="CL_TableEdit(this)">13213213</div>
  230. </body>
  231. </html>

猜你在找的Ajax相关文章