我要实现一个功能,在第一个订单号输入框输入回车后,自动生成一个快递单的输入框并且光标移到当前输入框,生成了快递单的输入框后,回车后再生成一个订单号输入框输并且光标移到当前输入框,订单号输入框输回车后再生成一个快递单的输入框并且光标移到当前输入框,依次循环,直到按下“批量录入”提交表单。第一个问题:我写的源代码不能实现光标移到当前输入框;
第二个问题:如果中间某行数据数据错误,希望可以删除掉这一行的订单号或者快递单号。
请大家指导.
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language="javascript">
function AddShipNo()
{
str='';
str=str+"快递单号:<input type=text name=ShipNo onkeypress= 'if(window.event.keyCode==13){AddOrderNo();}'>";
window.upid.innerHTML=window.upid.innerHTML+str;
document.ShipForm.ShipNo.focus;
}
function AddOrderNo()
{
str='';
str=str+"<br>订单号:<input type=text name=OrderNo size=30 onkeypress= 'if(window.event.keyCode==13){AddShipNo();}'>";
window.upid.innerHTML=window.upid.innerHTML+str;
document.ShipForm.OrderNo.focus;
}
</script></head><body onload= "document.ShipForm.OrderNo.focus() ">
<br><table align="center" cellspacing="0" width="99%" cellpadding="1" class="border">
<form action="" method="post" name="ShipForm">
<tr>
<td align="left" width="*" id="upid">订单号:<input name="OrderNo" type="text" size="30" onkeypress= "if(window.event.keyCode==13){AddShipNo();}"></td>
</tr>
<tr>
<td width="100%" height="20" align="center"><input type="submit" value="批量录入"></td>
</tr>
</form>
</table></body>
</html>
<script language="javascript">
function AddInput(e,oTD,flag){
e=e||window.event;
var k=e.keyCode||e.which;
if(k!=13) return;
var s =flag==1 ? "快递单号" : "订单号";
var s1=flag==0 ? "OrderNo" : "ShipNo";
flag=flag==1?0:1
var newTD=oTD.cloneNode(true);
newTD.innerHTML=s+":<input type=text name="+flag+" size='30' onkeyup='AddInput(event,this.parentNode,"+flag+");'>"
oTD.parentNode.appendChild(newTD); var o=document.getElementsByName(flag);
o[o.length-1].focus();
}</script></head><body onload= "document.ShipForm.OrderNo.focus() ">
<br><table align="center" cellspacing="0" width="99%" cellpadding="1" class="border">
<form action="" method="post" name="ShipForm">
<tr>
<td align="left" width="*" id="upid">订单号:<input name="OrderNo" type="text" size="30" onkeyup= "AddInput(event,this.parentNode,1);"></td>
</tr>
<tr>
<td width="100%" height="20" align="center"><input type="button" value="批量录入" onclick="this.form.submit();"></td>
</tr>
</form>
</table></body>
-------------->>>>
newTD.innerHTML=s+":<input type=text name="+s1+" size='30' onkeyup='AddInput(event,this.parentNode,"+flag+");'>"
<script language="javascript">
function AddInput(e,oTD,flag){
e=e||window.event;
var k=e.keyCode||e.which;
if(k!=13) return;
var s =flag==1 ? "快递单号" : "订单号";
var s1=flag==1 ? "ShipNo" : "OrderNo";
var tr=flag==1?oTD.parentNode: document.createElement('TR')
alert(tr.tagName)
flag=flag==1?0:1
var newTD=oTD.cloneNode(true);
newTD.innerHTML=s+":<input type=text name="+s1+" size='30' onkeyup='AddInput(event,this.parentNode,"+flag+");'>"
tr.appendChild(newTD);
if(flag==1){oTD.parentNode.parentNode.appendChild(tr)} var o=document.getElementsByName(s1);
o[o.length-1].focus();
}</script>
document.ShipForm.ShipNo.focus();
-------------
你的代码不兼容,IE only
var o=document.getElementsByName('ShipNo');
o[o.length-1].focus();
替换你的
document.ShipForm.ShipNo.focus;另一个也是一样,把ShipNo换成orderNo
订单号都是:OrderNo
定义一个全局变量来i来和ShipNo、OrderNo组成name或者增加id来无测试代码:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language="javascript">
var i=1;
function AddShipNo()
{
str='';
str=str+"快递单号:<input type=text name=ShipNo'+i+' onkeypress= 'if(window.event.keyCode==13){AddOrderNo();}'>";
window.upid.innerHTML=window.upid.innerHTML+str;
eval('document.ShipForm.ShipNo'+i+'.focus');
}
function AddOrderNo()
{
i=i+1;
str='';
str=str+"<br>订单号:<input type=text name=OrderNo'+i+' size=30 onkeypress= 'if(window.event.keyCode==13){AddShipNo();}'>";
window.upid.innerHTML=window.upid.innerHTML+str;
eval('document.ShipForm.OrderNo'+i+'.focus');
}
</script></head><body onload= "document.ShipForm.OrderNo1.focus() ">
<br><table align="center" cellspacing="0" width="99%" cellpadding="1" class="border">
<form action="" method="post" name="ShipForm">
<tr>
<td align="left" width="*" id="upid">订单号:<input name="OrderNo1" type="text" size="30" onkeypress= "if(window.event.keyCode==13){AddShipNo();}"></td>
</tr>
<tr>
<td width="100%" height="20" align="center"><input type="submit" value="批量录入"></td>
</tr>
</form>
</table></body>
</html>
我明白这个,请问如何解决我在一楼提出的问题呢?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language="javascript">
var i = 0;
function AddShipNo()
{
var e = e||window.event;
var k=e.keyCode||e.which;
if(k!=13) return;
str='';
str=str+"快递单号:<input type=text name=ShipNo id='ShipNo"+i+"' onkeypress= 'AddOrderNo();'>";
document.getElementById("upid").insertAdjacentHTML("beforeEnd",str);
document.getElementById("ShipNo"+(i++)).focus();
}
function AddOrderNo()
{
var e = e||window.event;
var k=e.keyCode||e.which;
if(k!=13) return;
str='';
str=str+"<br>订单号:<input type=text name=OrderNo id='OrderNo"+i+"' size=30 onkeypress= 'AddShipNo();'>";
document.getElementById("upid").insertAdjacentHTML("beforeEnd",str);
document.getElementById("OrderNo"+(i++)).focus();
}
</script></head><body>
<br><table align="center" cellspacing="0" width="99%" cellpadding="1" class="border">
<form action="" method="post" name="ShipForm">
<tr>
<td align="left" width="*" id="upid">订单号:<input name="OrderNo" id="OrderNo0" type="text" size="30" onkeypress= "AddShipNo();"></td>
</tr>
<tr>
<td width="100%" height="20" align="center"><input type="text" style="display:none" name="nothing"><input type="button" value="批量录入"></td>
</tr>
</form>
</table></body>
</html>