如何使用jQuery创建一个"类似"的剩余字符?

Reg*_*dit 8 jquery

我正在寻找增强我的WordPress主题的"元描述"和"标题"标签输入字段,我想添加一个文本片段,在每次按键后评估文本输入字段并更新字段"目标字符数"就像Twitter的确如此.

例如,在"元描述"字段中,目标字符数为160.因此,如果字段为空,则数字为160.当用户键入时,计数会随着每个字符添加到输入字段而减少,直到它达到零.

如果计数高于目标,则数字将以红色写入,前面带有减号(再次,就像推特一样).

是否有现成的jQuery脚本来执行此操作?

<label class="screen-reader-text" for="excerpt">
    Post Excerpt (Meta Description) <span class="counter">150</span> characters*         
</label>

<textarea rows="1" cols="40" name="excerpt" tabindex="6" id="excerpt"></textarea>
Run Code Online (Sandbox Code Playgroud)

Ry-*_*Ry- 15

不是我所知道的,但这里有一些东西可以帮助你入门:http://jsfiddle.net/yzLbh/

编辑:Andy E是对的 - 我应该(并且现在已经)使用该input事件添加了支持,如果您在支持它的浏览器上按住键,粘贴,拖动等,它将起作用.http://jsfiddle.net/yzLbh/5/

  • @minitech看起来很优雅.我喜欢它,我实际上只是把它放在客户的网站上.我找到了1个bug但是`el.css('color',null);`应该是`el.css('color','');`.在文档中也这么说:).同样对于我的情况,我将选择器更改为`:input`,以便它匹配包括textareas在内的所有输入. (3认同)

Ble*_*der 6

这没什么太复杂的:

JS:

maxCharacters = 160;

$('#count').text(maxCharacters);

$('textarea').bind('keyup keydown', function() {
    var count = $('#count');
    var characters = $(this).val().length;

    if (characters > maxCharacters) {
        count.addClass('over');
    } else {
        count.removeClass('over');
    }

    count.text(maxCharacters - characters);
});
Run Code Online (Sandbox Code Playgroud)

HTML:

<textarea></textarea>

<p>
    <strong>You have <em id="count"></em> characters remaining</strong>
</p>
Run Code Online (Sandbox Code Playgroud)

CSS:

.over {
    color: red;
}
Run Code Online (Sandbox Code Playgroud)

演示:http://jsfiddle.net/HgfPU/10/

您基本上处理textarea上的每个事件,并检查长度是否大于/小于阈值.