我建议你看看jQuery。一个例子是
$('textarea').keydown(function () { });
请注意,在此示例中,我将事件处理程序附加到每个文本区域。更好的方法是使用 css 类或其他更具体的选择来找到正确的文本区域。例如:
$('textarea.limitedlength').keydown(function () { });
另请注意,您应该在创建元素后执行此操作。如果您不想打扰时间,请使用 live 函数,然后 jQuery 会将事件处理程序附加到任何新找到的元素。
$('textarea.limitedlength').live('keydown', function () { });
好处是任何跨浏览器的问题都由框架处理。(我不知道 keydown 事件有任何跨浏览器问题,但 jQuery 处理了设置事件处理程序和选择正确元素方面的差异)。
正如 RobG 在他的回答中指出的那样,由于粘贴,keydown(和 keyup 事件)是不够的。另一种方法是计算并检查焦点何时从文本区域中移除:
$('textarea.limitedlength').blur(function () { });