本帖最后由 yousven 于 2012-11-06 00:18:56 编辑

解决方案 »

  1.   

    非IE标准浏览器下的keyCode是只读的,不可写你想实现回车修改成Tab键的功能的话,你得根据自己的实际需求做一些配合.比如规定可切换的元素,以及给每个元素增加一个tabidx属性。以你贴出来的这两个输入框为例,简单的修改一下就是<script type="text/javascript">
        function changeFocus(e){
            e = e || window.event;
            var key = e.keyCode || e.which;
            var target = e.srcElement || e.target;
            if(key==13){
                if(document.all){
                    e.keyCode=9;
                }else{
                    var tabIndex = target.getAttribute("tabidx")*1+1;
                    var eles = document.getElementsByTagName("input");
                    for(var i =0;i < eles.length;i++){
                        if(eles[i].getAttribute("tabidx") == tabIndex){
                           eles[i].focus();
                        }
                    }
                }
            }
        }
    </script>用户名:<input type="text" size="16" maxlength="16"  tabidx="0" onkeydown="changeFocus(event)"/>
    密码:<input type="password" size="16" maxlength="12" tabidx="1" onkeydown="changeFocus(event)"/>上面只是简单的做个例子。如果要切换的项多了的话,这种方式效率不高。如果一定要使用这种功能的话,建议:
    1:将所有要切换的项的ID先存储至一个数组中,假定:var eleArr=['username','password']
    2:在某一个输入框中回车,触发事件,找到当前输入框的ID在数据中的索引[username在eleArr中的索引为0],然后直接以eleArr[索引+1].focus();即可自己尝试去吧
    PS:建议Lz即使是在练习的时候也应该遵循一些规范。像你这两个输入框,id,name都没有。不是什么好习惯。建议除单(多)选按钮组以外的元素习惯以id进行命名,即使你是在练习
      

  2.   

     function changeFocus(e){
    e = e || window.event;
    if(e.keyCode==13){
    e.keyCode=9;
    } }