已经阻止默认行为,为什么按 enter 键后会先添加回车,然后再跳转到下一个 pre 标签。 <script>
window.onload=function keycode() {
focusfirst();
var oTargetGroup =document.getElementsByClassName("target");
for (var i=0; i<oTargetGroup.length;i++) {
oTargetGroup[i].onkeyup = function (e) {
var e = e||event;  
var NextTarget=this.nextElementSibling.nextElementSibling.nextElementSibling;
if (e.keyCode==13) {
e.preventDefault();

NextTarget.focus();
return false; }

}

}
}
function focusfirst() {
var oFirst= document.getElementById("firsttarget");
oFirst.focus();
}
 
</script>
</head>
<body>
<h1>文本编辑器</h1>
<hr />

<div class="mainpanel">
<pre class="source">Text 1</pre>
<pre class="status"></pre>
<pre id="firsttarget" class="target" contenteditable ></pre>
<pre class="source">Text 2</pre>
<pre class="status"></pre>
<pre class="target" contenteditable ></pre>
<pre class="source">Text 2</pre>
<pre class="status"></pre>
<pre class="target" contenteditable ></pre>
</div> </body>
</html>

解决方案 »

  1.   

    因为keydown的时候就已经插进去了。
      

  2.   

    改成 keydown 就没问题了,谢谢
      

  3.   

    加个
    if(e.preventDefault){
    e.preventDefault()
    }else{
    e.returnVlaue= false;
    }
     就可以了
      

  4.   

    加个if(e.preventDefault){
    e.preventDefault()
    }else{
    e.returnVlaue= false;
    } 就可以了
      

  5.   

    keyup 是按下键盘离开的事件,此时键盘上的字符还是会输到文本框的
    keydown 是按下键盘就执行了的