<html>
<head>
<title></title>
<meta http-equiv="http-content" content="text/html;charset=gb2312"/>
<script>
window.onload=function()
{
var Tb= document.getElementById("Tb");
Tb.ondblclick=Handler;
}
function Handler(e)
{
e=e||event;
var tag=e.srcElement||e.target;
if(tag.tagName=="TABLE"||tag.tagName=="TR")
return;
if(tag.tagName!="TD")
tag=tag.parentNode;
tag.getElementsByTagName("span")[0].style.display="none";
var inp=tag.getElementsByTagName("input")[0];
inp.onblur=function()
{
this.style.display="none";
var sp=this.parentNode.getElementsByTagName("span")[0];
sp.innerHTML=this.value;
sp.style.display="";
}
inp.style.display="";
inp.focus();
}
</script>
</head>
<body>
<table width='300px' border='1' cellpadding='0' cellspacing='2' id="Tb">
<tr><td width='33%'><span>行1列1</span><input type="text" value="行1列1" style="display:none"/></td>
<td width='33%'><span>行1列2</span><input type="text" value="行1列2" style="display:none"/></td>
<td width='34%'><span>行1列3</span><input type="text" value="行1列3" style="display:none"/></td></tr>
<tr><td width='33%'><span>行2列1</span><input type="text" value="行2列1" style="display:none"/></td>
<td width='33%'><span>行2列2</span><input type="text" value="行2列2" style="display:none"/></td>
<td width='34%'><span>行2列3</span><input type="text" value="行2列3" style="display:none"/></td></tr>
<tr><td width='33%'><span>行3列1</span><input type="text" value="行3列1" style="display:none"/></td>
<td width='33%'><span>行3列2</span><input type="text" value="行3列2" style="display:none"/></td>
<td width='34%'><span>行3列3</span><input type="text" value="行3列3" style="display:none" /></td></tr>
</table>
</body>
</html>
<head>
<title></title>
<meta http-equiv="http-content" content="text/html;charset=gb2312"/>
<script>
window.onload=function()
{
var Tb= document.getElementById("Tb");
Tb.ondblclick=Handler;
}
function Handler(e)
{
e=e||event;
var tag=e.srcElement||e.target;
if(tag.tagName=="TABLE"||tag.tagName=="TR")
return;
if(tag.tagName!="TD")
tag=tag.parentNode;
tag.getElementsByTagName("span")[0].style.display="none";
var inp=tag.getElementsByTagName("input")[0];
inp.onblur=function()
{
this.style.display="none";
var sp=this.parentNode.getElementsByTagName("span")[0];
sp.innerHTML=this.value;
sp.style.display="";
}
inp.style.display="";
inp.focus();
}
</script>
</head>
<body>
<table width='300px' border='1' cellpadding='0' cellspacing='2' id="Tb">
<tr><td width='33%'><span>行1列1</span><input type="text" value="行1列1" style="display:none"/></td>
<td width='33%'><span>行1列2</span><input type="text" value="行1列2" style="display:none"/></td>
<td width='34%'><span>行1列3</span><input type="text" value="行1列3" style="display:none"/></td></tr>
<tr><td width='33%'><span>行2列1</span><input type="text" value="行2列1" style="display:none"/></td>
<td width='33%'><span>行2列2</span><input type="text" value="行2列2" style="display:none"/></td>
<td width='34%'><span>行2列3</span><input type="text" value="行2列3" style="display:none"/></td></tr>
<tr><td width='33%'><span>行3列1</span><input type="text" value="行3列1" style="display:none"/></td>
<td width='33%'><span>行3列2</span><input type="text" value="行3列2" style="display:none"/></td>
<td width='34%'><span>行3列3</span><input type="text" value="行3列3" style="display:none" /></td></tr>
</table>
</body>
</html>
两个数据出现……
http://space.flash8.net/bbs/viewthread.php?tid=51314
况且,要更新数据库,单元格的数据已经在单元格中存放了,干嘛要把单元格的数据放在文本框中?
下面的例子,贴出来请多批评。<html>
<head>
<script type="text/javascript">
window.attachEvent("onload", function() {
document.getElementById("myTable").onclick = myTable_onClick;
});
function myTable_onClick() {
var el = event.srcElement;
if (el.tagName == "TD")
createInput(el);
}
function createInput(container) {
var _input = document.createElement("<input type='text' style='width: 150px; height: 25px;'>");
_input.value = container.innerHTML;
_input.onblur = function() {
container.innerHTML = _input.value;
}
container.innerHTML = "";
container.appendChild(_input);
_input.focus();
}
</script>
</head>
<body>
<table id="myTable" border="1">
<tr>
<td width="150">11</td>
<td width="150">12</td>
</tr>
<tr>
<td>21</td>
<td>22</td>
</tr>
</table>
</body>
</html>
但是后来放弃了,主要是这个东西最大的毛病是如果输错了,没有撤消的除地,都直接AJAX提交到数据库了。
当然如果不用AJAX提交,直接用表单submit提交也行,就是后台数据处理很麻烦,最后的处理办法是
设置一个编辑模式,进入编辑模式则所有表格内容都变成input,提交仍然采用AJAX提交。
放弃了原来那种单个录入的方法。