1

嗨,我正在设置文本区域输入的实时预览,该输入将发布到博客。我目前有这个设置

<textarea name="WPcomment" id="WPComment" placeholder="Add comments:" onkeypress="document.getElementById('prevCom').innerHTML = this.value"></textarea>

<div id="prevCom"></div>

问题是预览是文本区域输入后面的一个字符。例如,如果我写“我的评论”,我会看到“我的评论”

谢谢你的帮助!

4

5 回答 5

11

使用 keyup 和 keypress 事件,如果有人按住某个键并重复,则单独使用 keyup 将不起作用。

var wpcomment = document.getElementById('WPComment');

wpcomment.onkeyup = wpcomment.onkeypress = function(){
    document.getElementById('prevCom').innerHTML = this.value;
}​

演示

于 2012-09-04T20:23:08.247 回答
3

代替onkeypress="..."

更改为onkeyup。这将解决您遇到的字符未按预期更新的问题。

所以你的最终代码应该是:

<textarea name="WPcomment" id="WPComment" placeholder="Add comments:" onkeyup="document.getElementById('prevCom').innerHTML = this.value"></textarea>
<div id="prevCom"></div>​

看看这个 JSFiddle

于 2012-09-04T20:21:40.003 回答
0

尝试这个

<textarea name="WPcomment" id="WPComment" placeholder="Add comments:" onkeyup="document.getElementById('prevCom').innerHTML = this.value"></textarea>

<div id="prevCom"></div>​

使用onkeyup代替onkeypress

这是演示

于 2012-09-04T20:20:48.747 回答
0

你可以改变onkeyup or onchange

onkeyup ="document.getElementById('prevCom').innerHTML = this.value"
于 2012-09-04T20:22:26.530 回答
0

onkeyupjavascript中的事件将在您按下它后立即接收该字母

于 2012-09-04T20:24:22.387 回答