js修改table中Td的值(定义td的双击事件)
js修改table中Td的值(定义td的双击事件)
发布时间:2016-12-30 来源:查字典编辑
摘要:客户需求至上。这次是更改后的代码,去掉了“确定”,“取消”按钮。变单击为双击事件,用户按ESC键,取消更改。复制代码代码如下://为每个Td...

客户需求至上。

这次是更改后的代码,去掉了“确定”,“取消”按钮。变单击为双击事件,用户按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" 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教程学习
热门Javascript教程学习
编程开发子分类