如题。源码如下。当我点击表格时获得当强行号和总的行数。如果当前行号等于总的行数,就添加一个新行。如果不是,则进行输入数据处理。现在是添加的行显示不出来。不知为什么?请各位老大不吝赐教指点指点。万方感谢!<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>无标题文档</title>
<%@ page contentType="text/html; charset=GB2312" %>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="/hp.css" type="text/css">
<jsp:useBean id="MacIP" scope="session" class="bruce.MacIP.MacIP"/>
<jsp:useBean id="Jodb" scope="session" class="bruce.Jodb.Jodb"/>
<style>
td{ font-family: Courier New; font-size: 12px; text-align: center ;height:30;word-break:break-all;background-color:#d3e8ff}
textarea.content{ font-family: Courier New; font-size: 12px;height:expression(this.scrollHeight);overflow:hidden;border:1 solid #3366cc;width:98%;}
</style> </head><body>
<script>
function findObj(theObj, theDoc)
{
var p, i, foundObj;
if(!theDoc) theDoc = document;
if( (p = theObj.indexOf("?")) > 0 && parent.frames.length)
{ theDoc = parent.frames[theObj.substring(p+1)].document; theObj = theObj.substring(0,p); } if(!(foundObj = theDoc[theObj]) && theDoc.all) foundObj = theDoc.all[theObj]; for (i=0; !foundObj && i < theDoc.forms.length; i++) foundObj = theDoc.forms[i][theObj]; for(i=0; !foundObj && theDoc.layers && i < theDoc.layers.length; i++) foundObj = findObj(theObj,theDoc.layers[i].document); if(!foundObj && document.getElementById) foundObj = document.getElementById(theObj); return foundObj;
}
//添加一个参与人填写行
function AddSignRow(){ //读取最后一行的行号,存放在txtTRLastIndex文本框中
var txtTRLastIndex = findObj("txtTRLastIndex",document);
var rowID = parseInt(txtTRLastIndex.value);var signFrame = findObj("SignFrame",document);
//添加行
//var newTR = signFrame.insertRow(signFrame.rows.length);
//var newTR = signFrame.insertRow(signFrame.rows.length);
rowID=signFrame.rows.length-1;
var newTR = signFrame.insertRow(signFrame.rows.length);
//newTR.id = "SignItem" + rowID;
newTR.style.display='block';
alert("add Row "+rowID);
//添加列:楼层编号
//var BuilddingNo=newTR.insertCell(0);
var BuilddingNo=document.createElement("td");
BuilddingNo.innerHTML = "<textarea row=1 class='content' onblur='setV(this)' id='Me'>"+e.innerText+"</textarea>";
//添加列:房间编号
//var RoomNo=newTR.insertCell(1);
var RoomNo=document.createElement("td");
RoomNo.innerHTML = "<textarea row=1 class='content' onblur='setV(this)' id='Me'>"+e.innerText+"</textarea>";
//添加列:房屋面积
//var RoomArea=newTR.insertCell(2);
var RoomArea=document.createElement("td");
RoomArea.innerHTML ="<textarea row=1 class='content' onblur='setV(this)' id='Me'>"+e.innerText+"</textarea>";
//添加列:房屋价值
//var ZCValue=newTR.insertCell(3);
var ZCValue=document.createElement("td");
ZCValue.innerHTML ="<textarea row=1 class='content' onblur='setV(this)' id='Me'>"+e.innerText+"</textarea>";
//将行号推进下一行
txtTRLastIndex.value = (rowID + 1).toString() ;
}
//删除指定行
function DeleteSignRow(rowid){
var signFrame = findObj("SignFrame",document);
var signItem = findObj(rowid,document);//获取将要删除的行的Index
var rowIndex = signItem.rowIndex;//删除指定Index的行
signFrame.deleteRow(rowIndex);//重新排列序号,如果没有序号,这一步省略
for(i=rowIndex;i<signFrame.rows.length;i++){
signFrame.rows[i].cells[0].innerHTML = i.toString();
}
}//清空列表
function ClearAllSign(){
if(confirm('确定要清空所有参与人吗?')){
var signFrame = findObj("SignFrame",document);
var rowscount = signFrame.rows.length;//循环删除行,从最后一行往前删除
for(i=rowscount - 1;i > 0; i--){
signFrame.deleteRow(i);
}//重置最后行号为1
var txtTRLastIndex = findObj("txtTRLastIndex",document);
txtTRLastIndex.value = "1";//预添加一行
AddSignRow();
}
}
function dataEdit(tableObj){
var txtTRLastIndex = findObj("txtTRLastIndex",document);
var LastrowID = parseInt(txtTRLastIndex.value);
var signFrame = findObj("SignFrame",document);
var RowCount=signFrame.rows.length-1;
//获取将要删除钡男械捻Index
var rowIndex = event.srcElement.parentElement.rowIndex ; var e=event.srcElement
alert("RowCount="+RowCount+",\n CurRow="+rowIndex);
if(rowIndex==RowCount)
{
AddSignRow();
return;
}
if(e.tagName!="TD")return;
e.innerHTML="<textarea row=1 class='content' onblur='setV(this)' id='Me'>"+e.innerText+"</textarea>"
Me.focus();
} function setV(o){
o.parentElement.innerText=o.value
}
</script>
<div>
<div>
<div align="left">国有资产:</div>
<div align="left" style="margin:3px;padding: 3px;width:100%;border-width: 2px; border-color: black;border-style:double;">
<div style="border-width: 2px; padding: 3px;width:100%;border-color: black;border-style:double;" >
<label style="margin:3px;border-width: 2px; border-color: blue;border-style:double;background-color:blue;color:white;">房屋资产 </label>
<label style="margin:3px;border-width: 2px; border-color: black;border-style:double;">设备资产 </label>
<label style="margin:3px;border-width: 2px; border-color: black;border-style:double;">设施资产 </label>
<label style="margin:3px;border-width: 2px; border-color: black;border-style:double;">资源资产 </label>
<label style="margin:3px;border-width: 2px; border-color: black;border-style:double;">土地资源资产 </label>
<label style="margin:3px;border-width: 2px; border-color: black;border-style:double;">森林资源资产 </label>
<label style="margin:3px;border-width: 2px; border-color: black;border-style:double;">矿产资源资产 </label>
<label style="margin:3px;border-width: 2px; border-color: black;border-style:double;">海洋资源资产 </label>
<label style="margin:3px;border-width: 2px; border-color: black;border-style:double;">大气资源资产 </label><br><br>
<label style="margin:3px;border-width: 2px; border-color: black;border-style:double;">太空资源资产</label>
</div>
<div style="margin:3px;padding: 3px;width:100%;border-width: 2px; border-color: black;border-style:double;">
<label style="margin:3px;border-width: 2px; border-color: black;border-style:double;background-color:blue;color:white;">办公用房 </label>
<label style="margin:3px;border-width: 2px; border-color: black;border-style:double;">住宅用房 </label>
<label style="margin:3px;border-width: 2px; border-color: black;border-style:double;">生产用房 </label>
<label style="margin:3px;border-width: 2px; border-color: black;border-style:double;">商业经营用房 </label>
<label style="margin:3px;border-width: 2px; border-color: black;border-style:double;">出租用房 </label>
<label style="margin:3px;border-width: 2px; border-color: black;border-style:double;">闲置用房 </label>
</div>
<div style="margin:3px;padding: 3px;width:100%;border-width: 2px; border-color: black;border-style:double;">
<label style="margin:3px;border-width: 2px; border-color: black;border-style:double;background-color:blue;blue;color:white;">办公用房 </label>
</div>
</div>
</div>
<div align="left" style="margin:3px;padding: 3px;width:100%; height:335px;border-width: 2px; border-color: black;border-style:double;">
<table id="SignFrame" name="fwzctable" class="fwzctable" width="100%" border="1" onclick="dataEdit(this)" >
<tr>
<th scope="col">楼层编号</th>
<th scope="col">房间编号</th>
<th scope="col">房屋面积(平方米)</th>
<th scope="col">房屋价值(万元)</th>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr> <tr id="SignItem6">
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr">
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr></table> <div align="right">单位共有资产总价值:<input name="" type="text" readonly="true" value=" "/>万元人民币</div>
</div>
</div>
<div><input name="" type="button" value="上报提交" /><input name="" type="button" value="保存" /><input name="" type="button" value="打印" /><input name="" type="button" value="取消" /><input name='txtTRLastIndex' type='hidden' id='txtTRLastIndex' value="9" /></div>
</div></body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>无标题文档</title>
<%@ page contentType="text/html; charset=GB2312" %>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="/hp.css" type="text/css">
<jsp:useBean id="MacIP" scope="session" class="bruce.MacIP.MacIP"/>
<jsp:useBean id="Jodb" scope="session" class="bruce.Jodb.Jodb"/>
<style>
td{ font-family: Courier New; font-size: 12px; text-align: center ;height:30;word-break:break-all;background-color:#d3e8ff}
textarea.content{ font-family: Courier New; font-size: 12px;height:expression(this.scrollHeight);overflow:hidden;border:1 solid #3366cc;width:98%;}
</style> </head><body>
<script>
function findObj(theObj, theDoc)
{
var p, i, foundObj;
if(!theDoc) theDoc = document;
if( (p = theObj.indexOf("?")) > 0 && parent.frames.length)
{ theDoc = parent.frames[theObj.substring(p+1)].document; theObj = theObj.substring(0,p); } if(!(foundObj = theDoc[theObj]) && theDoc.all) foundObj = theDoc.all[theObj]; for (i=0; !foundObj && i < theDoc.forms.length; i++) foundObj = theDoc.forms[i][theObj]; for(i=0; !foundObj && theDoc.layers && i < theDoc.layers.length; i++) foundObj = findObj(theObj,theDoc.layers[i].document); if(!foundObj && document.getElementById) foundObj = document.getElementById(theObj); return foundObj;
}
//添加一个参与人填写行
function AddSignRow(){ //读取最后一行的行号,存放在txtTRLastIndex文本框中
var txtTRLastIndex = findObj("txtTRLastIndex",document);
var rowID = parseInt(txtTRLastIndex.value);var signFrame = findObj("SignFrame",document);
//添加行
//var newTR = signFrame.insertRow(signFrame.rows.length);
//var newTR = signFrame.insertRow(signFrame.rows.length);
rowID=signFrame.rows.length-1;
var newTR = signFrame.insertRow(signFrame.rows.length);
//newTR.id = "SignItem" + rowID;
newTR.style.display='block';
alert("add Row "+rowID);
//添加列:楼层编号
//var BuilddingNo=newTR.insertCell(0);
var BuilddingNo=document.createElement("td");
BuilddingNo.innerHTML = "<textarea row=1 class='content' onblur='setV(this)' id='Me'>"+e.innerText+"</textarea>";
//添加列:房间编号
//var RoomNo=newTR.insertCell(1);
var RoomNo=document.createElement("td");
RoomNo.innerHTML = "<textarea row=1 class='content' onblur='setV(this)' id='Me'>"+e.innerText+"</textarea>";
//添加列:房屋面积
//var RoomArea=newTR.insertCell(2);
var RoomArea=document.createElement("td");
RoomArea.innerHTML ="<textarea row=1 class='content' onblur='setV(this)' id='Me'>"+e.innerText+"</textarea>";
//添加列:房屋价值
//var ZCValue=newTR.insertCell(3);
var ZCValue=document.createElement("td");
ZCValue.innerHTML ="<textarea row=1 class='content' onblur='setV(this)' id='Me'>"+e.innerText+"</textarea>";
//将行号推进下一行
txtTRLastIndex.value = (rowID + 1).toString() ;
}
//删除指定行
function DeleteSignRow(rowid){
var signFrame = findObj("SignFrame",document);
var signItem = findObj(rowid,document);//获取将要删除的行的Index
var rowIndex = signItem.rowIndex;//删除指定Index的行
signFrame.deleteRow(rowIndex);//重新排列序号,如果没有序号,这一步省略
for(i=rowIndex;i<signFrame.rows.length;i++){
signFrame.rows[i].cells[0].innerHTML = i.toString();
}
}//清空列表
function ClearAllSign(){
if(confirm('确定要清空所有参与人吗?')){
var signFrame = findObj("SignFrame",document);
var rowscount = signFrame.rows.length;//循环删除行,从最后一行往前删除
for(i=rowscount - 1;i > 0; i--){
signFrame.deleteRow(i);
}//重置最后行号为1
var txtTRLastIndex = findObj("txtTRLastIndex",document);
txtTRLastIndex.value = "1";//预添加一行
AddSignRow();
}
}
function dataEdit(tableObj){
var txtTRLastIndex = findObj("txtTRLastIndex",document);
var LastrowID = parseInt(txtTRLastIndex.value);
var signFrame = findObj("SignFrame",document);
var RowCount=signFrame.rows.length-1;
//获取将要删除钡男械捻Index
var rowIndex = event.srcElement.parentElement.rowIndex ; var e=event.srcElement
alert("RowCount="+RowCount+",\n CurRow="+rowIndex);
if(rowIndex==RowCount)
{
AddSignRow();
return;
}
if(e.tagName!="TD")return;
e.innerHTML="<textarea row=1 class='content' onblur='setV(this)' id='Me'>"+e.innerText+"</textarea>"
Me.focus();
} function setV(o){
o.parentElement.innerText=o.value
}
</script>
<div>
<div>
<div align="left">国有资产:</div>
<div align="left" style="margin:3px;padding: 3px;width:100%;border-width: 2px; border-color: black;border-style:double;">
<div style="border-width: 2px; padding: 3px;width:100%;border-color: black;border-style:double;" >
<label style="margin:3px;border-width: 2px; border-color: blue;border-style:double;background-color:blue;color:white;">房屋资产 </label>
<label style="margin:3px;border-width: 2px; border-color: black;border-style:double;">设备资产 </label>
<label style="margin:3px;border-width: 2px; border-color: black;border-style:double;">设施资产 </label>
<label style="margin:3px;border-width: 2px; border-color: black;border-style:double;">资源资产 </label>
<label style="margin:3px;border-width: 2px; border-color: black;border-style:double;">土地资源资产 </label>
<label style="margin:3px;border-width: 2px; border-color: black;border-style:double;">森林资源资产 </label>
<label style="margin:3px;border-width: 2px; border-color: black;border-style:double;">矿产资源资产 </label>
<label style="margin:3px;border-width: 2px; border-color: black;border-style:double;">海洋资源资产 </label>
<label style="margin:3px;border-width: 2px; border-color: black;border-style:double;">大气资源资产 </label><br><br>
<label style="margin:3px;border-width: 2px; border-color: black;border-style:double;">太空资源资产</label>
</div>
<div style="margin:3px;padding: 3px;width:100%;border-width: 2px; border-color: black;border-style:double;">
<label style="margin:3px;border-width: 2px; border-color: black;border-style:double;background-color:blue;color:white;">办公用房 </label>
<label style="margin:3px;border-width: 2px; border-color: black;border-style:double;">住宅用房 </label>
<label style="margin:3px;border-width: 2px; border-color: black;border-style:double;">生产用房 </label>
<label style="margin:3px;border-width: 2px; border-color: black;border-style:double;">商业经营用房 </label>
<label style="margin:3px;border-width: 2px; border-color: black;border-style:double;">出租用房 </label>
<label style="margin:3px;border-width: 2px; border-color: black;border-style:double;">闲置用房 </label>
</div>
<div style="margin:3px;padding: 3px;width:100%;border-width: 2px; border-color: black;border-style:double;">
<label style="margin:3px;border-width: 2px; border-color: black;border-style:double;background-color:blue;blue;color:white;">办公用房 </label>
</div>
</div>
</div>
<div align="left" style="margin:3px;padding: 3px;width:100%; height:335px;border-width: 2px; border-color: black;border-style:double;">
<table id="SignFrame" name="fwzctable" class="fwzctable" width="100%" border="1" onclick="dataEdit(this)" >
<tr>
<th scope="col">楼层编号</th>
<th scope="col">房间编号</th>
<th scope="col">房屋面积(平方米)</th>
<th scope="col">房屋价值(万元)</th>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr> <tr id="SignItem6">
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr">
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr></table> <div align="right">单位共有资产总价值:<input name="" type="text" readonly="true" value=" "/>万元人民币</div>
</div>
</div>
<div><input name="" type="button" value="上报提交" /><input name="" type="button" value="保存" /><input name="" type="button" value="打印" /><input name="" type="button" value="取消" /><input name='txtTRLastIndex' type='hidden' id='txtTRLastIndex' value="9" /></div>
</div></body>
</html>
不过e我有定义啊
var e=event.srcElement
就在函数EditData()中。你可以把我的源码拷贝下来,存为HTML文件,在本地运行,允许脚本就行,肯定能行,点击表格为显示相应内容。但就是添加一行后,添加的行显示不出来。
我的初衷是想做成全屏编辑表格,提交时,将整张表格数据提交到数据库中。有老大帮忙看一下,问题处在哪里?
var txtTRLastIndex = findObj("txtTRLastIndex",document);
var LastrowID = parseInt(txtTRLastIndex.value);var signFrame = findObj("SignFrame",document);
var RowCount=signFrame.rows.length-1;//这两行ie与标准的事件机制不同
var e=window.event || arguments.callee.caller.arguments[0];
var ss=e.srcElement || e.target;
//获取将要删除钡男械捻Index
var rowIndex=(ss).parentNode.rowIndex
//var rowIndex = event.srcElement.parentElement.rowIndex ; //alert("RowCount="+RowCount+",\n CurRow="+rowIndex);
if(rowIndex==RowCount)
{
AddSignRow();
return;
}
if(ss.tagName!="TD")return; //这里非ie用textContent,其它的你自己改吧,Me.focus()这种要使用getElementById来查找才行,parentElement换成parentNode
ss.innerHTML="<textarea row=1 class='content' onblur='setV(this)' id='Me'>"+(ss.innerText?ss.innerText:ss.textContent)+"</textarea>"
Me.focus();
}
function AddSignRow(){ //读取最后一行的行号,存放在txtTRLastIndex文本框中
var txtTRLastIndex = findObj("txtTRLastIndex",document);
var rowID = parseInt(txtTRLastIndex.value);var signFrame = findObj("SignFrame",document);
//添加行
//var newTR = signFrame.insertRow(signFrame.rows.length);
//var newTR = signFrame.insertRow(signFrame.rows.length);
rowID=signFrame.rows.length-1;
var newTR = signFrame.insertRow(signFrame.rows.length);
//newTR.id = "SignItem" + rowID;
//newTR.style.display='block';
//alert("add Row "+rowID);
//添加列:楼层编号
var BuilddingNo=newTR.insertCell(0);
BuilddingNo.innerHTML =" ";
//添加列:房间编号
var RoomNo=newTR.insertCell(1);
RoomNo.innerHTML = " ";
//添加列:房屋面积
var RoomArea=newTR.insertCell(2);
RoomArea.innerHTML =" ";
//添加列:房屋价值
var ZCValue=newTR.insertCell(3);
ZCValue.innerHTML =" ";
//将行号推进下一行
txtTRLastIndex.value = (rowID + 1).toString() ;
}关键是要让innerHTML =" ";
再次感谢各位指点!