项目做完,在测试验收时,用户突然提出,可以更改查询结果,便于打印。隐藏工程错误。但是这个时候提要求,比较头痛,后来,想了想还是用前台代码,这样,只要在项目的js文件中,加入以下几个函数,便可以解决了。
复制代码 代码如下:
/*
页面装载时,为每个td增加单击事件,这样,就可以不用对每个页面进行更改。
*/
function rewritable()
{
var tbmian=document.getelementbyid(tbmain);
for(var i=0;i{
for(var j=0;j{
/*
添加单击事件属性。此处不可使用setattribute方法。
*/
tbmain.rows[i].cells[j].onclick=addobjoftext;
}
}
}
/*
单击事件,将td内容更新为一个div,其中装载了一个text,用于用户输入新的td的值,
一个确定按钮,一个取消按钮,用于保存或取消用户的输入内容。
一个hidden,保存用户输入新值前的td的值,以便用户取消时恢复。
*/
function addobjoftext()
{
var tdcag=document.getelementbyid(tdcag);
if(tdcag!=null)
{
return;
}
var tdid=window.event.srcelement;
var tdtxt=tdid.innertext;
var str=;
str+=;
str+=;
str+=;
str+=
;
tdid.innerhtml=str;
}
/*
取消更改,把hidden值赋给td
*/
function canceltdchanged()
{
var tdinitvalue=document.getelementbyid(tdinitvalue);
var tdtxt=tdinitvalue.value;
var tdid=document.getelementbyid(tdcag).parentnode;
tdid.innertext=tdtxt;
}
/*
保存用户更改,把text值赋值给td
*/
function changetdtext()
{
var txtid=document.getelementbyid(txtid);
var tdid=document.getelementbyid(tdcag).parentnode;
tdid.innertext=txtid.value;
}
这样,在页面的中,添加onload事件,其值赋为:rewritable(),如下:
复制代码 代码如下:
11
12
13
21
22
23
31
32
33
这样,每个td中,便添加了一个单击事件。