有个任务按下Enter,不提交页面,而是焦点到下一个输入框
上网一搜,原以为得计,写了个这么样的事件onkeydown="if (event.keycode==13) {event.keycode=9}"
但是万万没有想到<input type=file>中根本没用,莫名万分问题真是棘手,盼望高手赐教

解决方案 »

  1.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <title> New Document </title>
    <meta name="Generator" content="EditPlus">
    <meta name="Author" content="">
    <meta name="Keywords" content="">
    <meta name="Description" content="">
    <script language="JavaScript">
    <!--
    /*
    键盘上下键移动,在文本控件中移动
    需要在 <body中 加上 onload="initKey()" > 
    cols =? 为多列设定,单列为 1 ,多列时可以使用左右键。。
    2004/08/18 10:47:47
    */
    var cols=1; 
    var CanMove=false; 
    var key; function initKey(){ 
    document.onkeydown=keyDown; 
    document.onkeyup=keyUp; 
    } function keyDown(DnEvents){ 
    var key=window.event.keyCode; // 如果按回车,且当前焦点不是button,submit,a ,image,则当做是Table键跳格
    if(key ==13){
    //alert (event.srcElement.type);
    if (event.srcElement.type!='button' && event.srcElement.type!='submit' && event.srcElement.type!='reset' && event.srcElement.type!='image' && event.srcElement.type!=''){
    event.keyCode =9;
    }
    }else{
    if(key==116){ 
    window.event.keyCode=0; 
    return false; 

    if(key==8){ 
    if(event.srcElement.tagName!="INPUT"){ 
    event.cancelBubble = true; 
    event.returnValue = false; 
    return false; 


    // 是否使用 Ctrl键 Start
    //var IsCtrl=window.event.ctrlKey; 
    //if(!IsCtrl){ 
    //return; 
    //} 
    // 是否使用 Ctrl键 End
    var obj = event.srcElement;
    for(var i=0;i<document.forms[0].elements.length;i++){ 
    if(document.forms[0].elements[i]==obj){ 
    //alert (obj);
    //if (key == 37){//← 
    //if(i>0){ 
    //document.forms[0].elements[i-1].focus(); 
    //} 
    //} 
    if (key == 38){//↑ 
    if(i>cols-1){ document.forms[0].elements[i-cols].focus(); } 

    //if (key == 39){//→ 
    //if(i<document.forms[0].elements.length-1){ document.forms[0].elements[i+1].focus(); } 
    //} 
    if (key == 40){//↓ 
    if(i<document.forms[0].elements.length-cols){ document.forms[0].elements[i+cols].focus(); } 



    }} function keyUp(UpEvents){ 
    return false; 

    </script></head><body onload="initKey()">
    <form method=post action="">
    <input type="text" name="a" onkeydown="if (event.keycode==13) {event.keycode=9}">
    <input type="text" name="b">
    <input type="file" name="c">
    </form></body>
    </html>
      

  2.   

    老大,<input type=text>当然可以了,但是那个<input type=file>呢?
    还是不行嘛
      

  3.   

    可能对于<input type=file>这是个只读属性,
    老是报 access denied!
      

  4.   

    <html>
    <head>
    <script language="javascript">
    function testGG(){
       var obj = event.srcElement;
       if(event.keyCode==13){
          if(obj.nextSibling!=null){
          
          obj.nextSibling.focus();
      }
       }}
    </script>
    </head>
    <body>
    <DIV onKeyDown="testGG()">
    <input type="text" width="100"/><input type="text" width="100"/><input type="text" width="100"/><input type="text" width="100"/><input type="text" width="100"/><input type="text" width="100"/><input type="file" width="100"/><input type="text" width="100"/><input type="text" width="100"/>
    </DIV></body>
    </html>
      

  5.   

    lz的意思是file是能跳到的但是跳到file以后再往下跳就跳不过去了
      

  6.   

    rjzou2006(一个小泡) ( ) 信誉:100  2007-08-22 16:59:33  得分: 0  
     
     
       最后不是一个file吗?帅哥,可是你的程序在我这也是报那个错么
    在你这不报?
      
     
      

  7.   

    好拉帮你改了一下<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <title> New Document </title>
    <meta name="Generator" content="EditPlus">
    <meta name="Author" content="">
    <meta name="Keywords" content="">
    <meta name="Description" content="">
    <script language="JavaScript">
    <!--
    /*
    键盘上下键移动,在文本控件中移动
    需要在 <body中 加上 onload="initKey()" > 
    cols =? 为多列设定,单列为 1 ,多列时可以使用左右键。。
    2004/08/18 10:47:47
    */
    var cols=1; 
    var CanMove=false; 
    var key; function initKey(){ 
    document.onkeydown=keyDown; 
    document.onkeyup=keyUp; 
    } function keyDown(DnEvents){ 
    var key=window.event.keyCode; // 如果按回车,且当前焦点不是button,submit,a ,image,则当做是Table键跳格
    if(key ==13){
    //alert (event.srcElement.type);
    if (event.srcElement.type!='button' && event.srcElement.type!='submit' && event.srcElement.type!='reset' && event.srcElement.type!='image' && event.srcElement.type!=''){
    //event.keyCode =9;
    var obj = event.srcElement;
    for(var i=0;i<document.forms[0].elements.length;i++){ 
    if(document.forms[0].elements[i]==obj){ 
    //alert('ddd');
    if(i<document.forms[0].elements.length-cols){ document.forms[0].elements[i+cols].focus(); }
    }
    }
    }
    }else{
    if(key==116){ 
    window.event.keyCode=0; 
    return false; 

    if(key==8){ 
    if(event.srcElement.tagName!="INPUT"){ 
    event.cancelBubble = true; 
    event.returnValue = false; 
    return false; 


    // 是否使用 Ctrl键 Start
    //var IsCtrl=window.event.ctrlKey; 
    //if(!IsCtrl){ 
    //return; 
    //} 
    // 是否使用 Ctrl键 End
    var obj = event.srcElement;
    for(var i=0;i<document.forms[0].elements.length;i++){ 
    if(document.forms[0].elements[i]==obj){ 
    //alert (obj);
    //if (key == 37){//← 
    //if(i>0){ 
    //document.forms[0].elements[i-1].focus(); 
    //} 
    //} 
    if (key == 38){//↑ 
    if(i>cols-1){ document.forms[0].elements[i-cols].focus(); } 

    //if (key == 39){//→ 
    //if(i<document.forms[0].elements.length-1){ document.forms[0].elements[i+1].focus(); } 
    //} 
    if (key == 40){//↓ 
    if(i<document.forms[0].elements.length-cols){ document.forms[0].elements[i+cols].focus(); } 



    }} function keyUp(UpEvents){ 
    return false; 

    </script></head><body onload="initKey()">
    <form method=post action="">
    <input type="text" name="a">
    <input type="text" name="b">
    <input type="file" name="c">
    <input type="text" name="bd">
    <input type="text" name="bdd">
    </form></body>
    </html>