2011-06-03 63 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

相關問題