DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> js修改table中Td的值(定義td的雙擊事件)
js修改table中Td的值(定義td的雙擊事件)
編輯:關於JavaScript     
客戶需求至上。
這次是更改後的代碼,去掉了“確定”,“取消”按鈕。變單擊為雙擊事件,用戶按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>
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved