//為每個Td加上雙擊事件 function ReWritable() { var tbmian=document.getElementById("tbmain"); //循環,為每行每列添加雙擊事件,但是,第一行(thead)與最後一行(tfoot)不加。 for(var i=1;i{ for(var j=0;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>if(tdcag! =null)//已經存在,返回。 { return; } //不存在,則添加 tdid=window.event.srcElement; tdtxt=tdid.innerText; tdtxt=Trim( tdtxt); var str="
"; str =""; str ="
"; 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 td=tdInitValue.value. =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);