2011-09-08 51 views
0

我發現下面的JavaScript可以對textarea中的字符進行倒計時並將其顯示在另一個文本框中。除了使用字段名稱之外,它非常適合我需要的內容。我的字段是數組(short_descripton[]long_description[])。有沒有辦法使用字段ID而不是名稱?表格字段textarea count

<script> 
function textCounter(field,cntfield,maxlimit) { 
if (field.value.length > maxlimit) // if too long...trim it! 
field.value = field.value.substring(0, maxlimit); 
// otherwise, update 'characters left' counter 
else 
cntfield.value = maxlimit - field.value.length; 
} 
</script> 

這裏是一個域的例子:

<textarea id=sd1 rows="2" name="short_description[]"> 
onKeyDown="textCounter(document.myForm.short_description[],document.myForm.remLen1,125)" 
onKeyUp="textCounter(document.myForm.short_description[],document.myForm.remLen1,125)"> 
</textarea> 
<br> 
<input readonly type="text" name="remLen1" size="3" maxlength="3" value="125"> 
characters left 

與往常一樣,任何幫助,將不勝感激。

回答

1

傳入帶有所需標識的document.getElementById()的調用。

onKeyDown="textCounter(document.getElementById('sd1'),document.myForm.remLen1,125)" onKeyUp="textCounter(document.getElementById('sd1'),document.myForm.remLen1,125)">

+0

謝謝,Jrod。我改變了我的Javascript代碼,它的工作。 function textCounter(field,cntfield,maxlimit)var total = field.length; // alert(cntfield); if(total> maxlimit)//如果太長...修剪它! total = total.substring(0,maxlimit); //否則,更新'剩下的字符'計數器 else cntfield.value = maxlimit - total; //alert(cntfield.value); } – MarkHFLA

1

當然可以!請看:

<textarea id=sd1 rows="2" name="short_description[]" 
onKeyDown="textCounter(this,document.getElementById('remLen1'),125)" 
onKeyUp="textCounter(this,document.getElementById('remLen1'),125)"> 
</textarea> 
<br> 
<input readonly type="text" name="remLen1" id="remLen1" size="3" maxlength="3" value="125"> 
characters left 
  1. 在該範圍內,您可以使用此指令發送對象的引用。
  2. 總是嘗試使用對象的ID而不是document.myForm.remLen1原因不是跨瀏覽器的方法,我擔心只適用於Internet Explorer。
  3. 記住驗證服務器大小內容的長度。這種方法可以被有經驗的用戶避免。