如何设置textarea输入字母计数器[重复]

Posted

技术标签:

【中文标题】如何设置textarea输入字母计数器[重复]【英文标题】:How to set the textarea input letters counter [duplicate] 【发布时间】:2015-08-01 03:59:50 【问题描述】:

我曾与一个特定的宽度和高度textarea的让我怎么创建一个字母柜台,并设置在textarea的类型应该不超过100个字的最大字母。

html

<div class="box">
<textarea name="" id=""></textarea>
<div class="word-counter">0/100</div>
</div>

CSS

.box 
width:500px;
border: 1px solid red;
position:relative;
display:table;

textarea 
width:500px;
height:80px;
padding-bottom: 20px;

.word-counter 
position:absolute;
bottom: 0;
right:0;

【问题讨论】:

类似的功能已经在这里讨论过:***.com/questions/30332301/… 【参考方案1】:

使用 .keyup() 计算字母。

$('#area').keyup(function()
    $('.word-counter').text($.trim(this.value.length)+'/100');
)

maxlength 属性为最大字母。

<div class="box">
<textarea name="" id="area" maxlength="100"></textarea>
<div class="word-counter">0/100</div>
</div>

Demo Fiddle

*注意:这支持空格。如果您只需要处理字母计数,则可以操作 keyup()

$('#area').keyup(function()
    $('.word-counter').text(this.value.replace(/ /g,'').length+'/100');
)

Fiddle (Spaces ignored in letter count)

【讨论】:

你能帮我一个忙吗 我正在使用这个插件tympanus.net/codrops/2014/04/01/minimal-form-interface 所以当我嵌入 textarea 时它不起作用。我的意思是它没有验证并且它没有前进 我对插件一无所知。您可以在 *** 上发布新问题或查看插件文档 好的,谢谢@Shaunak D 让我们continue this discussion in chat。【参考方案2】:

您可以简单地使用maxlength,但这意味着您对其设置了字符限制而不是字数限制。如果您要求字数限制,则需要实现 javascript

就我个人而言,我只是将我的字符限制设置为大约 1,000 或我希望评论/消息框扩大高度的数量。

HTML

<div class="box">
<textarea name="" id="" maxlength="50"></textarea>
<div class="word-counter">0/100</div>
</div>

【讨论】:

这不能回答问题 Welp,没有意识到他想要 jQuery。我只是在谈论 HTML。 这不是关于 jQuery,他们要求的是字母计数器,而不是如何限制 textarea。 是的,我很抱歉。我只是在阅读问题并给出答案,显然,我必须放慢速度,并更彻底地阅读。【参考方案3】:

你可以这样调用函数:

function countwords(str)
  var count = 0;
  str=str.trim();
  for (var i = 0; i <= str.length; i++) 
     if (str.charAt(i) == " ") 
        count ++;
      
  
  return count;

【讨论】:

【参考方案4】:

试试这个

$('#text').keydown(function(e)
    var code=e.keyCode;
    var length=$(this).val().split(' ').length;
    if(length<=100)
    
        $('.word-counter').text(length+'/100');
    
    else
    
        if(code!=37&&code!=38&&code!=39&&40&&code!=8&&code!=46)
        
        return false;
        
    
);

Working Demo

【讨论】:

您可能需要检查按下的键是backspacedeletearrow keys 等。否则这可能会导致问题!只是一个建议.. :) 按退格键时无法正常工作【参考方案5】:
$('#text').keyup(function(e) 
    var length=parseInt($(this).val().length)+1;
     switch (e.keyCode) 
            case 8:  // Backspace
            length--;
             $('.word-counter').text(length+'/100');
             break;
            case 9:  // Tab
            case 13: // Enter
            case 37: // Left
            case 38: // Up
            case 39: // Right
            case 40: // Down
            break;

            default:
                 if(length<=100)
                
                    $('.word-counter').text(length+'/100');
                
                else
                
                    return false;
                
                 
    );

使用keyup() 进行字母计数 这是它的工作演示 Working Demo

【讨论】:

以上是关于如何设置textarea输入字母计数器[重复]的主要内容,如果未能解决你的问题,请参考以下文章

实时字符计数器

“textarea”中的 JavaFX 8 计数行

如何在 Flutter 中隐藏 TextField 底部的字母计数器

html 中 SMS TextArea 的 Javascript 字符计数器

如何计算java中textArea中段落的行数? [复制]

mcnp的重复探测器单元计数-fmesh卡的介绍