我很难找到一种跨浏览器兼容的,基于Javascript的方法来将函数附加到元素。微软似乎(当然)再次拥有自己的做事方式,并且很难做到这一点。基本上,我正在用Javascript动态创建一个表,并将TEXTAREA元素添加到该行的单元格中。我需要为TEXTAREA的onkeydown添加一个函数,以便可以检查文本框的长度是否已达到最大限制(不幸的是,TEXTAREA元素不支持MaxLength属性)。

是否存在适用于FF和IE6,IE7,IE8和IE9的简单解决方案?

最佳答案

我建议您看一下jQuery。一个例子是

$('textarea').keydown(function () { });


请注意,在此示例中,我将事件处理程序附加到每个文本区域。更好的方法是使用CSS类或其他更特定的选择来找到正确的textarea。例如:

$('textarea.limitedlength').keydown(function () { });


另请注意,您应该在创建元素之后执行此操作。如果您不想打扰时间,请使用live函数,jQuery会将事件处理程序附加到任何新发现的元素上。

$('textarea.limitedlength').live('keydown', function () { });


好处是框架可以处理任何跨浏览器的问题。 (我不知道keydown事件是否存在跨浏览器的问题,但是jQuery处理设置事件处理程序和选择正确元素方面的差异)。

正如RobG在他的回答中指出的那样,由于粘贴,键控(和键控事件)还不够。另一种方法是计数和检查焦点何时从文本区域移除:

$('textarea.limitedlength').blur(function () { });

关于javascript - 如何将事件连接到Javascript中的HTML元素?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5984351/

10-11 13:33
查看更多