2011-09-08 5 views
0

텍스트 영역의 문자를 카운트 다운하고 다른 텍스트 상자에 표시하는 다음 JavaScript가 있습니다. 그것은 필드 이름을 사용하는 것을 제외하고는 내가 필요한 것만 큼 완벽합니다. 내 필드는 배열 (short_descripton[]long_description[])입니다. 이름 대신 필드 ID를 사용하는 방법이 있습니까? 양식 필드 텍스트 카운트

<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 

은 언제나, 어떤 도움을 주시면 감사하겠습니다 :

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

여기에 필드 예입니다.

답변

1

원하는 id로 document.getElementById() 호출을 전달하십시오.

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

+0

감사합니다. Jrod. 내 자바 코드를 조금 변경하고 효과가 있었다. function textCounter (field, cntfield, maxlimit) { var total = field.length; // 경고 (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. 서버 크기의 콘텐츠 길이를 확인하는 데 사용되는 Remeber입니다. 경험이 많은 사용자는이 방법을 피할 수 있습니다.