Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 萤火虫:“;';字符编码';不应使用keyup事件的属性。价值是没有意义的。”;_Jquery - Fatal编程技术网

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
会因键盘类型的不同而有所不同,因此您的方法是错误的。