正在寻找一个可以处理多个文本区域的jQuery文本计数器

Looking for a jQuery text counter that can do multiple text areas!

本文关键字:文本 处理 区域 计数器 jQuery 寻找 一个      更新时间:2023-09-26

我四处寻找,却找不到一个能满足我需求的插件:

  1. 可用于每页的多个文本区域
  2. 有最小和最大限制
  3. 用户键入时显示字符和警告

理想情况下,如果插件/函数根据字符限制阻止/启用表单,那就太好了。

我在哪里可以找到这样规格的插件?

我应该自己写吗?我是jQuery和JavaScript的新手,所以后一种选择是不可取的。但我可以修补和复制代码。

写这样的东西很容易。。。

$('textarea').keyup(function(){
    var maxsize = 1000;
    if( $(this).val().length > maxsize)
        $(element).val($(element).val().substring(0, maxsize));
});

你也可以让它更通用。。。只是一个基本的例子:

<textarea data-min="10" data-max="1000"></textarea>
$('textarea').keyup(function(){
    var maxsize = $(this).data('max');
    if( $(this).val().length > maxsize)
        $(element).val($(element).val().substring(0, maxsize));
});
$('textarea').blur(function(){
    var minsize = $(this).data('min');
    if( $(this).val().length < minsize)
        alert("Mininum size for this textarea is " + minsize);
});

我会根据按键事件编写自己的。应该很简单:

var textarea = document.getElementById('someelement');
var formSubmitButton = document.getElementById('someelementsParentform');
textarea.addEventListener('keypress', function(){
    checklength(this, minvalue, maxvalue, formSubmitButton)
}, false);
function checkLength(thiselement, min, max, formSubmitButton){
if(thiselement.length < min || thiselement > max){
    formSubmitButton.disabled = true;
}else{
    formSubmitButton.disabled = false;
}

这是未经测试的代码,但我相信它应该可以工作

要在另一个文本区域中使用它,只需在该文本区域中添加一个事件侦听器并调用该函数。