2011-06-03 80 views
0

我环顾四周,却没有能够找到一个插件,会做什么,我需要:寻找一个可以做多个文本区域的jQuery文本计数器!

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

理想情况下,如果插件/函数基于字符限制阻止/启用表单,那将会很好。

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

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

回答

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

你拥有我会写,基于在按键事件上。应该是相当简单:

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的,只是添加事件侦听到该文本区域并调用该函数。

+0

keyup事件也会起作用 – AsherMaximum 2011-06-03 22:08:37

+0

您也可以从'checkLength'返回true或false,然后根据checkLength返回的内容在事件侦听器中执行一些操作。 – AsherMaximum 2011-06-03 22:11:53

相关问题