Chrome 显示未定义密钥代码
Chrome showing undefined for keyCode
所以我有一个下拉列表,当用户从列表中选择某些内容并按 Enter 而不是单击时,应该使用所选数据刷新页面。
它在IE和Firefox中运行良好,但Safari和Chrome似乎完全忽略了它。
这是我将属性添加到下拉列表中的位置:
cboContext.Attributes.Add("OnKeyDown", "if (typeAhead(event,'" + cboContext.ClientID + "') == 1) contextPostback();");
它似乎忽略了Chrome和Safari中的OnKeyDown属性
编辑:
根据Sime和Nil的工作和评论,我发现Chrome无法识别keyCode,它显示为未定义。
我已经把我的typeAhead()代码放在jsFiddle上
这是我声明keyCode变量的地方:
var charCode = evt.keyCode || evt.which;
有谁知道为什么它会保持未定义?
您可以使用"onchange"属性(另外,或作为"onkeydown"属性的替代品)。
在 Chrome 中,当 SELECT 元素打开并按下 ENTER 时,"onchange"代码将执行。
现场演示:http://jsfiddle.net/nQhUT/3/
事件名称区分大小写。事件应为"onkeydown"。IE可能不会强制执行吗?
cboContext.Attributes.Add("onkeydown", "if (typeAhead(event,'" + cboContext.ClientID + "') == 1) contextPostback();");
编辑:
我不确定inputBuffer.accumString在您的typeAhead函数中做了什么,当我尝试使用小提琴时,它破坏了代码。
如果您尝试使用 onchange 调用 typeAhead 函数,则以下代码中的 charCode 将是未定义的。 您只能在跨浏览器的 Keyup/KeyDown 上获取 keyCode。请检查此内容。
var charCode = evt.keyCode || evt.which;
如果你仔细检查你的函数,它只返回 1 并在 inputBuffer 上执行一些操作,如果按下键是输入或 Tab 否则它返回 -1。 如果你能按照 Šime Vidas 的建议让你的函数在 onchange 上工作,而不是 onkeydown/onkeyup,它将跨浏览器工作。
- Windows密钥的密钥代码
- 可以'无法获得正确的密钥代码
- 如何以正确的方式将密钥添加到此反应代码中
- Chrome 显示未定义密钥代码
- 获取密钥代码值 - JavaScript
- 从字符串中获取密钥代码/密钥
- 跨浏览器获取密钥代码
- 粘贴IE返回的密钥代码
- Javascript document.addEventListener仅适用于1个密钥代码
- 在Chrome浏览器中获取Tab键的密钥代码的问题
- Javascript和密钥代码,防止文本框中出现特殊字符
- 协调Firefox斜杠处理和密钥代码
- 在 Android 版 Chrome 中,密钥代码始终为零
- 解析主密钥云代码以下用户
- 使用JavaScript访问浏览器's密钥库中的签名/加密—示例代码?(WebCryptoAPI)
- 浏览器密钥代码列表
- 如何在将密钥传递给javascript代码时保护密钥
- 解析云代码功能不能使用主密钥,它没有被提供
- JavaScript密钥代码
- 如何在不显示API密钥的情况下使此代码正常工作?我正在Node.js/Angular/Express上构建应用程序