当用户键入时实时显示 HTML 文本区域中的字符数

Cal*_*oiu 5 html javascript jquery

我正在尝试创建一个form带有 atextarea和 a的博客评论span,它向用户显示可以在文本区域中引入的剩余字符数。

所以我有这个表格:

<form action="comment.php" method="POST" accept-charset="utf-8">
    <textarea name="comment" id="comment" rows="4" cols="56"></textarea>

    <input type="submit" value="Post" />
    <span id="comment-chars-left">512</span> characters left
</form>
Run Code Online (Sandbox Code Playgroud)

然后我编写了以下 jQuery 代码:

$('#comment')
    .keydown(function(event) {
        $('#comment-chars-left').html('' + (512 - $textarea.val().length));
    });
Run Code Online (Sandbox Code Playgroud)

问题是,当.keydown首先调用输入时,它会打印剩余字符的数量,然后输入的新字符显示在textarea. 因此剩余字符数没有正确的值,大了一个单位。要使这项工作正常进行,.keydown应在插入新字符后调用。

我该如何解决这个问题?

ale*_*lex 5

keyup()代替使用。

您还需要绑定一些其他事件。

使用bind('keyup paste drop')

keyup对于释放按键时的事件,paste如果有人在您的 中粘贴文本textarea,以及drop如果有人在您的 中删除了一大块文本textarea

js小提琴