0

我在 html 页面上有一个 textarea,在 google chrome 上,我不知道是什么版本,因为用户界面被巧妙地隐藏了,但是在 chrome 上,onChange="code" 事件没有触发,但在 Firefox 11.0 1.0 上(根据帮助->关于)它正在射击。然后,我开始使用事件 onkeydown="same_function()"、onpaste="same_function()" 和 oninput="same_function()",以确保至少捕获一个事件。但是现在的问题是我收到了太多事件,当我在收到 keydown 事件后检查 textarea 的 textarea_dom_object.value 时,按下的键不包含在我正在阅读的值中;如果我在文本字段中有“abc”并按“d”,则会生成一个按键,但我

是否有一种兼容的方式,或者至少有一种适用于大多数浏览器的方式,可以在每次 textarea 更改时获取一个事件,但最好只有一个事件?如果我必须首先测试我是否已经听过一个事件等等,我不喜欢我必须编写的那种丑陋的代码。我想要的只是每次文本区域中的文本更改时发生一个事件。

4

2 回答 2

1

这就是为什么 jQuery 如此神奇的原因。它理解在不支持新功能的浏览器之间优雅地降级代码的需要。JavaScript 本身并不能单独提供这种支持。通过增强 JavaScript 在使用 jQuery 时的核心功能,您通常会在跨浏览器支持方面取得更大的成功。

话虽如此...

在很多情况下,您需要确定您正在使用的设备/浏览器,以便您可以执行预期的操作。

要记住的最重要的事情是不存在 100% 交叉支持的库。

于 2012-04-22T17:42:10.600 回答
1

你可以这样做。只要确保你给 textarea 一个 id 标签

$(document).ready(function(){
        $('.addtitle').keyup(function(event) {
            if(event.keyCode==13) { 

}
});
});

就我而言,我在 Enter 键上触发了该功能(如 facebooks 功能)。

编辑:另外,如果您在页面上有多个文本区域,您应该这样做:

$(document).ready(function(){
        $('textarea[name=mynamevalue]').keyup(function(event) {
            if(event.keyCode==13) { 

}
});
});
于 2012-04-22T18:04:09.540 回答