Jquery 萤火虫:“;';字符编码';不应使用keyup事件的属性。价值是没有意义的。”;
我正在构建一个计算器,并使用以下功能:Jquery 萤火虫:“;';字符编码';不应使用keyup事件的属性。价值是没有意义的。”;,jquery,Jquery,我正在构建一个计算器,并使用以下功能: jQuery(function($) { $('#Quantity').keyup(function() { console.log($(this).val()); }); }); 问题1:keyup()是要使用的正确事件吗 问2:为什么Firebug告诉我“不应该使用keyup事件的'charCode'属性。该值没有意义”?我注意到它的作用与我在Stackoverflow中键入此问题的作用相同,因此我一定没有做错什么。1
jQuery(function($) {
$('#Quantity').keyup(function() {
console.log($(this).val());
});
});
问题1:keyup()是要使用的正确事件吗
问2:为什么Firebug告诉我“不应该使用keyup事件的'charCode'属性。该值没有意义”?我注意到它的作用与我在Stackoverflow中键入此问题的作用相同,因此我一定没有做错什么。1)是的,您使用了正确的事件和keyup
,因此您得到了最新的值
2) 您可以安全地忽略此Firebug警告,它出现在许多应用程序中,这是Firebug对此IMO应该更聪明一点的结果。这并不是直接回答您的问题,但可能会提供有用的信息 发件人: 键码和字符码 这两个属性是keyCode和charCode。简单地说,keyCode表示用户按下的实际键盘键,而charCode给出结果字符的ASCII值。这些信息不一定是相同的;例如,小写字母“a”和大写字母“a”具有相同的键码,因为用户按下了相同的键,但由于结果字符不同,因此具有不同的字符码 Explorer和Opera不支持字符代码。但是,它们在keyCode中提供字符信息,但仅限于onkeypress。Onkeydown和-up键代码包含键信息
如果按下一个不打印字符的键(如箭头键),我只能假设
charCode
值是“无意义的”。此外,如果用户使用非英语键盘,charCode
可能与您预期的不同。但我对此并不确定。之所以出现这种情况,是因为jQuery使用自己的事件
对象,而不是本机浏览器对象,并且在创建此对象的过程中,会读取事件的所有可能属性,包括charCode
:
props = [ ... "charCode" ... ]
for ( var i = this.props.length, prop; i; ) {
prop = this.props[ --i ];
event[ prop ] = originalEvent[ prop ];
}
Firefox正确地警告您,在出现keyup事件时,您不想阅读charCode
,没有意识到您只是在复制它,实际上没有对它做任何事情。因此,使用jquerykeyup/keydown处理程序创建的任何页面都会发出无休止的警告
(在我看来,jQuery不应该费心复制这个属性。在你真正想使用它的唯一情况下-
keypress
-你只需要使用普通的,它就可以了)我宁愿jQuery在这方面更聪明一点。它不应该读取keyup
或keydown
事件的charCode
属性。在任何情况下,哪个
属性更适合于按键
事件。事实并非如此。关键是charCode
对于keyup
和keydown
事件没有意义,因为只有keypress
事件包含有关键入字符的信息(通过charCode
或哪个)<在按键
事件中,无论键盘类型如何,code>charCode
都有效;在keydown
和keydup
中的keyCode
会因键盘类型的不同而有所不同,因此您的方法是错误的。