表格字段textarea计数

时间:2011-09-08 17:27:56

标签: javascript forms

我发现以下JavaScript会对textarea中的字符进行倒计时,并将其显示在另一个文本框中。除了使用字段名称外,它非常适合我需要的东西。我的字段是数组(short_descripton[]long_description[])。有没有办法使用字段ID而不是名称?

<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

与往常一样,任何帮助都将受到赞赏。

2 个答案:

答案 0 :(得分: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. 记住验证服务器大小的内容长度。有经验的用户可以避免这种方法。

答案 1 :(得分:1)

使用您想要的ID调用document.getElementById()。

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