寻找一个可以做多个文本区域的jQuery文本计数器!

时间:2011-06-03 21:50:30

标签: javascript jquery textarea

我环顾四周,无法找到能够满足我需要的插件:

  1. 每页可在多个文本区域使用。
  2. 有最低和最高限额
  3. 在用户输入时显示字符和警告。
  4. 理想情况下,如果插件/函数根据字符限制阻止/启用表单会很好。

    我在哪里可以找到具有此类规格的插件?

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

2 个答案:

答案 0 :(得分:2)

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

$('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);
});

答案 1 :(得分:1)

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

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;
}

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

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