str += "<td>名称<BR><input onkeydown='if (event.keyCode==13){window.open(\"newyh.php?\" + this.value,\"report\");ChangeWidth(this.parentNode.cellIndex,0)
}type=text name=yhc'+newitemid+'></td>";
}type=text name=yhc'+newitemid+'></td>";
<html>
<head>
<script></script></head>
<form name="hid">
<input type=hidden name="che" value="0">
</form>
<script>
onload=function() {
document.hid.che.value=parseInt(document.hid.che.value)+1;
var newitemid=document.hid.che.value;
str ='<form name=newtable action="http://192.168.0.17/htdocs/yh.php" onkeydown="if(event.keyCode==13) event.keyCode=9;">';
str += '<table><tr><td>日期<p><input type=text name=yha' +newitemid+ ' onkeydown="if(event.keyCode==13) event.keyCode=9;">';
str += '</td>';
str += "<td>名称<br><input onkeydown='if (event.keyCode==13){window.open(\"newyh.php?\" + this.value,\"report\");ChangeWidth(parentNode.cellIndex,parentNode.parentNode.rowIndex)}' type=text name=yhc"+newitemid+"></td>";
str += '<td>年龄<p><input type=text name=yhc'+newitemid+'></td>';
str += '<td>单位<p><input type=text name=yhd'+newitemid+'></td>';
str += '<td>体型<p><input type=text name=yhe'+newitemid+'></td>';
str += '<td>重量<p><input type=text name=yhf'+newitemid+'></td>';
str += '<td>生日<p><input type=text name=yhg'+newitemid+'></td>';
str += '<td>编号<p><input type=text name=yhh'+newitemid+'></td>';
str += '<td>婚否<p><input type=text name=yhi'+newitemid+'></td>';
str += '<td>地点<p><input type=text name=yhj'+newitemid+'></td>';
str += '<td>描述<p><input type=text name=yhk'+newitemid+'></td>';
str += '<td>意见<p><input type=text name=yhl'+newitemid+'></td>';
str += '<td>介绍人<p><input type=text name=yhm'+newitemid+'></td>';
str += '<td>备注<p><input type=text name=yhn'+newitemid+'>';
str += '</td></tr></table>';
str += '<p><input type=submit name="保存" value="保存">';
document.writeln(str);
}
function ChangeWidth(colIndex,tagIndex)
{
var len=0;
for(i=0;i<oTable.rows.length;i++)
{
if(oTable.rows(i).cells(colIndex).all.tags("INPUT")[0].value.length>len)
len=oTable.rows(i).cells(colIndex).all.tags("INPUT")[0].value.length
}
for(i=0;i<oTable.rows.length;i++)
{
oTable.rows(i).cells(colIndex).all.tags("INPUT")[0].size=len
}
}
2 在页面中间写onload函数来并不能实现在页面装载完了再在页面的中间写东西<html>
<head>
<script>function ChangeWidth(colIndex,tagIndex)
{
var len=0;
for(i=0;i<oTable.rows.length;i++)
{
if(oTable.rows(i).cells(colIndex).all.tags("INPUT")[0].value.length>len)
len=oTable.rows(i).cells(colIndex).all.tags("INPUT")[0].value.length
}
for(i=0;i<oTable.rows.length;i++)
{
oTable.rows(i).cells(colIndex).all.tags("INPUT")[0].size=len
}
}
</script>
</head>
<body>
<form name="hid">
<input type=hidden name="che" value="0">
<SCRIPT LANGUAGE="JavaScript">
<!--document.hid.che.value=parseInt(document.hid.che.value)+1;
var newitemid=document.hid.che.value;
str ='<form name=newtable action="http://192.168.0.17/htdocs/yh.php" onkeydown="if(event.keyCode==13) event.keyCode=9;">';
str += '<table><tr><td>日期<p><input type=text name=yha' +newitemid+ ' onkeydown="if(event.keyCode==13) event.keyCode=9;">';
str += '</td>';
str += "<td>名称<br><input onkeydown='if (event.keyCode==13){window.open(\"newyh.php?\" + this.value,\"report\");ChangeWidth(parentNode.cellIndex,parentNode.parentNode.rowIndex)}' type=text name=yhc"+newitemid+"></td>";
str += '<td>年龄<p><input type=text name=yhc'+newitemid+'></td>';
str += '<td>单位<p><input type=text name=yhd'+newitemid+'></td>';
str += '<td>体型<p><input type=text name=yhe'+newitemid+'></td>';
str += '<td>重量<p><input type=text name=yhf'+newitemid+'></td>';
str += '<td>生日<p><input type=text name=yhg'+newitemid+'></td>';
str += '<td>编号<p><input type=text name=yhh'+newitemid+'></td>';
str += '<td>婚否<p><input type=text name=yhi'+newitemid+'></td>';
str += '<td>地点<p><input type=text name=yhj'+newitemid+'></td>';
str += '<td>描述<p><input type=text name=yhk'+newitemid+'></td>';
str += '<td>意见<p><input type=text name=yhl'+newitemid+'></td>';
str += '<td>介绍人<p><input type=text name=yhm'+newitemid+'></td>';
str += '<td>备注<p><input type=text name=yhn'+newitemid+'>';
str += '</td></tr></table>';
str += '<p><input type=submit name="保存" value="保存">';
document.writeln(str);//-->
</SCRIPT>
</form>这样也许好一点,不过也不保险,主要是
----------------------------------------
var newitemid=document.hid.che.value
-----------------------------------------
这句是在页面还在装载的时候运行的。其实何必用这样的写法呢?
说实在的,我一点都看不出你的意图。
<head>
<SCRIPT LANGUAGE="JavaScript">
<!--
function getLength(str)
{
var result = 0;
for (var i=0;i<str.length;i++)
result += (str.charCodeAt(i)>255)?2:1
return result;
}
function cloneLine()
{
var tmptr = event.srcElement.parentNode.parentNode;
var tmptr2 = tmptr.cloneNode(true);
tmptr.parentNode.insertBefore(tmptr2)
event.keyCode=9
}
//-->
</SCRIPT>
</head>
<body>
<form name=form1>
<table>
<tr>
<td>日期<input size=8 onkeydown="if (event.keyCode==13) event.keyCode=9"></td>
<td>名称<input size=8 onchange="this.size=getLength(this.value)" onkeydown="if (event.keyCode==13) event.keyCode=9"></td>
<td>年龄<input size=8 onkeydown="if (event.keyCode==13) event.keyCode=9"></td>
<td>单位<input size=8 onkeydown="if (event.keyCode==13) event.keyCode=9"></td>
<td>体型<input size=8 onkeydown="if (event.keyCode==13)cloneLine()"></td>
</tr>
</table>
<input type=button onclick="document.form1.submit()" value="提交">
</form>
</body>
</html>惭愧的很,秋水那段判断串真实长度的代码一时竟然找不到,只好写了段笨笨的getLength()。
没有用submit按钮是为了防止误操作发送表单。
function XXX(ss)
{
//加你需要的过程
}
</script>
<input type="text" name="XXXX" onBlur="XXX(this.value)" value size="20" >
<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
<!--
function getLength(str)
{
var result = 0;
for (var i=0;i<str.length;i++)
result += (str.charCodeAt(i)>255)?1.87:1
if (result <6) result =6
return result;
}
function resizeInput()
{
with (tbody1)
for (var i=0;i<tr1.children.length;i++)
{
var k=6;
for (var j=0;j<children.length;j++)
with (children[j].children[i].lastChild)
if (getLength(value)>k)
k = getLength(value);
for (var j=0;j<children.length;j++)
children[j].children[i].lastChild.size=k;
}
event.keyCode=9
}
function cloneLine()
{
var t = tbody1.children.length;
var tmptr = tr1.cloneNode(true);
tmptr.id=null
tmptr.style.display="";
tmptr.children[0].innerHTML = "日期<input size=6 name=yha"+t+" onkeydown='if (event.keyCode==13) resizeInput()' onchange='resizeInput()'>"
tmptr.children[1].innerHTML = "名称<input size=6 name=yhb"+t+" onkeydown='if (event.keyCode==13) {window.open(\"newyh.php?\" + this.value,\"report\"); resizeInput()}' onchange='resizeInput()'>"
tmptr.children[2].innerHTML = "年龄<input size=6 name=yhc"+t+" onkeydown='if (event.keyCode==13) resizeInput()' onchange='resizeInput()'>"
tmptr.children[3].innerHTML = "单位<input size=6 name=yhd"+t+" onkeydown='if (event.keyCode==13) resizeInput()' onchange='resizeInput()'>"
tmptr.children[4].innerHTML = "体型<input size=6 name=yhe"+t+" onkeydown='if (event.keyCode==13) {cloneLine() ;resizeInput()}' onchange='resizeInput()'>"
tbody1.insertBefore(tmptr)
event.keyCode=9
}
//-->
</SCRIPT>
</head>
<body onload=cloneLine()>
<form name=form1>
<table>
<tr style="display:none" id=tr1><td></td><td></td><td></td><td></td><td></td></tr>
<tbody id=tbody1>
</tbody>
</table>
<input type=button onclick="document.form1.submit()" value="提交">
</form>
</body>
</html>以下是楼主的要求:
接近了!
还差:
1。增加了N行之后,第一行中日期,名称,年龄三个框的宽度同时都变化。
比如:第一行中名称输入的值是:tom
第二行中名称输入的值是:Johnson
第三行中名称输入的值是:mike那么这一列<input>的宽度动态为Johnson这个框的宽度!其它各列都要具备这个功能2。在名称这一列框中,先输入字符,再按下回车后,能跳出另一个窗口对以上的说明:
能够在名称这一列框中按回车键跳出新窗口,是为了把输入的字符传到新开窗口的页面中去!
您好象没有为动态增加的一行的各个<input>的名字作变化。这是必须的,要因我后边要根据传到新开窗口的那个值班,即(姓名这一列)的值作数据库查询。然后从新开窗口中选定数据库查询的某一行结果返写回调用页面!所以必须要为新增行的每一列动态变化name的值!比如:姓名<input name=name1>
姓名<input name=name2>
姓名<input name=name3>其它各列一样!无论有多少列产生唉,这1分真不好拿呀。
如果为了把数据发给一个服务程序,可以用
http://www.csdn.net/expert/topic/1061/1061875.xml?temp=.8957025
的方法