js修改table中Td的值(定义td的双击事件)


Posted in Javascript onJanuary 10, 2013

客户需求至上。
这次是更改后的代码,去掉了“确定”,“取消”按钮。变单击为双击事件,用户按ESC键,取消更改。

//为每个Td添加双击事件 
function ReWritable() 
{ 
var tbmian=document.getElementById("tbmain"); 
//循环,为每行每列添加双击事件,但是,第一行(thead)与最后一行(tfoot)不添加。 
for(var i=1;i<tbmain.rows.length-1;i++) 
{ 
for(var j=0;j<tbmain.rows[i].cells.length;j++) 
{ 
tbmain.rows[i].cells[j].ondblclick=TdDoubleClick; 
} 
} 
} 
//定义td的双击事件,为其添加文本框,使用用户可以输入。 
function TdDoubleClick() 
{ 
//首先判断是不是该方格已经存在文本框,如果存在,则返回,不重复添加文本框。如果不存在,则添加。 
var tdcag=document.getElementById("tdcag"); 
var tdid=null; 
var txtid=null; 
var curtd=window.event.srcElement; 
if(tdcag!=null)//已经存在,返回。 
{ 
return; 
} 
//不存在,则添加 
tdid=window.event.srcElement; 
tdtxt=tdid.innerText; 
tdtxt=Trim(tdtxt); 
var str="<div id='tdcag'><input type='text' onblur='ChangeTdText();' id='txtId' value='"+tdtxt+"'>"; 
str+="<input type='hidden' id='tdInitValue' value='"+tdtxt+"'>"; 
str+="</div>"; 
tdid.innerHTML=str; 
//使文本框获得焦点。 
document.getElementById("txtId").focus(); 
var ctr=document.getElementById("txtId").createTextRange(); 
ctr.collapse(false); 
ctr.select(); 
} 
//去除字符串前后的空格。 
function Trim(str) 
{ 
return str.replace(/(^\s*)|(\s*$)/g, ""); 
} 
//定义KeyPress按下时的事件,如果是ESC键,则取消更改,恢复为更改前的值。 
document.onkeypress = function EscKeyPress() 
{ 
if(event.keyCode==27) 
{ 
CancelTdChanged(); 
return; 
} 
} 
//取消更改, 
function CancelTdChanged() 
{ 
var tdInitValue=document.getElementById("tdInitValue"); 
var tdtxt=tdInitValue.value; 
var tdid=document.getElementById("tdcag").parentNode; 
tdid.innerText=Trim(tdtxt); 
} 
//确定更改, 
function ChangeTdText() 
{ 
var txtId=document.getElementById("txtId"); 
if(txtId==null) 
{ 
return; 
} 
var tdid=document.getElementById("tdcag").parentNode; 
tdid.innerText=Trim(txtId.value); 
return; 
}

其它代码,与以前相同。只是取消了对表的Thead与Tfoot的更改。
<body onload="ReWritable();"> 
<table id="tbmain" style="width:100%;" border="1"> 
<thead> 
<tr> 
<td>thead,thead,thead</td> 
</tr> 
</thead> 
<tfoot> 
<tr> 
<td> 
tfoot,tfoot,tfoot 
</td> 
</tr> 
</tfoot> 
<tr> 
<td>11 
</td> 
<td>12 
</td> 
<td>13</td> 
</tr> 
<tr> 
<td>21 
</td> 
<td>22 
</td> 
<td>23 
</td> 
</tr> 
<tr> 
<td>31 
</td> 
<td>32 
</td> 
<td>33 
</td> 
</tr> 
</table> 
</body>
Javascript 相关文章推荐
IE Firefox 使用自定义标签的区别
Oct 15 Javascript
jQuery EasyUI API 中文文档 - Form表单
Oct 06 Javascript
可以用鼠标拖动的DIV实现思路及代码
Oct 21 Javascript
JavaScript插件化开发教程 (二)
Jan 27 Javascript
jQuery实现dialog设置focus焦点的方法
Jun 10 Javascript
javascript实现3D切换焦点图
Oct 16 Javascript
VueJS组件之间通过props交互及验证的方式
Sep 04 Javascript
JavaScript对象拷贝与Object.assign用法实例分析
Jun 20 Javascript
深入解析ES6中的promise
Nov 08 Javascript
vue组件之间数据传递的方法实例分析
Feb 12 Javascript
Elementui表格组件+sortablejs实现行拖拽排序的示例代码
Aug 28 Javascript
Vue+ElementUI table实现表格分页
Dec 14 Javascript
javascript之Partial Application学习
Jan 10 #Javascript
javascript之典型高阶函数应用介绍二
Jan 10 #Javascript
javascript之典型高阶函数应用介绍
Jan 10 #Javascript
根据json字符串生成Html的一种方式
Jan 09 #Javascript
web的各种前端打印方法之jquery打印插件jqprint实现网页打印
Jan 09 #Javascript
web的各种前端打印方法之jquery打印插件PrintArea实现网页打印
Jan 09 #Javascript
实现web打印的各种方法介绍及实现代码
Jan 09 #Javascript
You might like
在apache下限制每个虚拟主机的并发数!!!!
2006/10/09 PHP
php表单提交与$_POST实例分析
2015/01/26 PHP
php中curl使用指南
2015/02/05 PHP
PHP分页初探 一个最简单的PHP分页代码的简单实现
2016/06/21 PHP
javascript或asp实现的判断身份证号码是否正确两种验证方法
2009/11/26 Javascript
ASP.NET jQuery 实例12 通过使用jQuery validation插件简单实现用户注册页面验证功能
2012/02/03 Javascript
javascript实现仿腾讯游戏选择
2015/05/14 Javascript
javascript单页面手势滑屏切换原理详解
2016/03/21 Javascript
Bootstrap编写导航栏和登陆框
2016/05/30 Javascript
微信小程序 开发工具快捷键整理
2016/10/31 Javascript
JavaScript中从setTimeout与setInterval到AJAX异步
2017/02/13 Javascript
JS实现动态添加DOM节点和事件的方法示例
2017/04/28 Javascript
JSON 数据格式详解
2017/09/13 Javascript
vue2.0 父组件给子组件传递数据的方法
2018/01/15 Javascript
js笔试题-接收get请求参数
2019/06/15 Javascript
JS字符串补全方法padStart()和padEnd()
2020/05/27 Javascript
[01:04]DOTA2上海特锦赛现场采访 FreeAgain遭众解说围攻
2016/03/25 DOTA
Python去除列表中重复元素的方法
2015/03/20 Python
Python基础之函数的定义与使用示例
2019/03/23 Python
Django logging配置及使用详解
2019/07/23 Python
如何使用python进行pdf文件分割
2019/11/11 Python
python清空命令行方式
2020/01/13 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
2021/02/07 Python
使用HTML和CSS3绘制基本卡通图案的示例分享
2015/11/06 HTML / CSS
用CSS3的box-reflect来制作倒影效果
2016/11/15 HTML / CSS
Furla官网:意大利著名的皮革品牌
2019/08/06 全球购物
Smilodox官方运动服装店:从运动服到健身配件
2020/08/27 全球购物
千元咖啡店的创业计划书范文
2013/12/29 职场文书
高中军训感言200字
2014/02/23 职场文书
仓库文员岗位职责
2014/04/06 职场文书
项目建议书范文
2014/05/12 职场文书
社会工作专业求职信
2014/07/15 职场文书
导游欢迎词范文
2015/01/23 职场文书
物流仓管员岗位职责
2015/04/01 职场文书
2015财务年终工作总结范文
2015/05/22 职场文书
《成长的天空》读后感3篇
2019/12/06 职场文书