我要实现一个功能,在第一个订单号输入框输入回车后,自动生成一个快递单的输入框并且光标移到当前输入框,生成了快递单的输入框后,回车后再生成一个订单号输入框输并且光标移到当前输入框,订单号输入框输回车后再生成一个快递单的输入框并且光标移到当前输入框,依次循环,直到按下“批量录入”提交表单。第一个问题:我写的源代码不能实现光标移到当前输入框;
第二个问题:如果中间某行数据数据错误,希望可以删除掉这一行的订单号或者快递单号。
请大家指导.
<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>

解决方案 »

  1.   

    试试这个吧,IE only。FF下不可以,回车就直接提交了
    <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>
      

  2.   

    newTD.innerHTML=s+":<input type=text name="+flag+"  size='30' onkeyup='AddInput(event,this.parentNode,"+flag+");'>"
    -------------->>>>
    newTD.innerHTML=s+":<input type=text name="+s1+"  size='30' onkeyup='AddInput(event,this.parentNode,"+flag+");'>"
      

  3.   


    <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>
      

  4.   

    document.ShipForm.OrderNo.focus();
    document.ShipForm.ShipNo.focus();
    -------------
    你的代码不兼容,IE only
      

  5.   

    试试:
    var o=document.getElementsByName('ShipNo');
    o[o.length-1].focus();
    替换你的
    document.ShipForm.ShipNo.focus;另一个也是一样,把ShipNo换成orderNo
      

  6.   

    你这个添加的快递单号都是input name 都是ShipNo
    订单号都是: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>
      

  7.   

    我是想用一个request收集到信息后储存在数组里面,所以这样书写,cl_stock你的代码也无法运行啊。
      

  8.   

    input name一样 直接从后台获取Request.Form[""]
      

  9.   

    happy664618843
    我明白这个,请问如何解决我在一楼提出的问题呢?
      

  10.   


    <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>