使用 event.which 来验证用户是否按下空格键在 Firefox 中不起作用

2023-11-30

我想要一个脚本来验证按下的键是否是“空格键”,键码 32。我注意到 IE 使用其他函数名称。

我尝试了很多在这里找到的解决方案:

event = event || window.event // IE does not pass event to the function
if(event == window.event){
    code = event.keyCode;
}else{
    code = event.which;
} 
if(code == '32') {}

但在 Firefox 中仍然不起作用。

我认为我在 Firefox 中错误地调用了该函数。看一下整个脚本:

<textarea onkeydown="predicao(this);" cols="40" rows="10" id="test" onfocus="this.focus()"></textarea>
<input id="example" style="display: none;" onkeydown="javascript: insert(this);"/>

<script language="Javascript">
<!--

function predicao(objeto){
    comprimento = objeto.value.length;
    var antipenultimo = comprimento - 4;
    var input = objeto.value.substring(antipenultimo,comprimento);
    var output = "";
    for(i=0; i<input.length; ++i){
        if(output != "") output += ", ";
        output += input.charCodeAt(i);
    }
    if (output == "91, 91, 103, 32"){

        var preditor = document.getElementById('example');
        preditor.value = '';
        preditor.style.display = 'block';
        preditor.focus();
        preditor.select();
    }  
}
function insert(objeto){
event = event.which || window.event // IE does not pass event to the function
if(event == window.event){
    code = event.keyCode;
}else{
    code = event.charCode;
} 
    if(keynum == '32') {
        var texto = document.getElementById('test').value;
        texto += objeto.value+']]';
        $('#test').focus();
        document.getElementById('test').value = texto;
        objeto.style.display = 'none';
    }
}
$(document).ready(function(){
    var data = "Ab Aco Ado Ala Mano Cata Ca Obo Olo Po Poq".split(" ");
$("#example").autocomplete(data);});
</script>

我想做的是 - (我不知道名字) - 文本区域内的预测帮助输入器。它使用 jQuery 自动完成。 当用户在文本区域(id=test)中输入“[[g”时,会打开一个具有自动完成功能的输入(id=example),因此它会在“data”中搜索。当用户找到所需的数据时,必须按空格键将数据插入到文本区域中,并以“]]”结束,但在 Firefox 中不起作用。

(是的,我以完全错误的方式使用 JavaScript 和 jQuery 来处理相同的元素,因为我不太擅长这一点,我会在 Firefox 工作后尝试纠正它。)


EDIT

HMTL:

<textarea onkeydown="predicao(this);" cols="40" rows="10" id="test" onfocus="this.focus()"></textarea>
<input id="example" style="display: none;" onkeydown="insert(this, event);"/>

JS:

function predicao(objeto){
    var comprimento = objeto.value.length;
    var antipenultimo = comprimento - 4;
    var input = objeto.value.substring(antipenultimo,comprimento);
    var output = "";
    for(var i=0; i<input.length; ++i){
        if(output != "") output += ", ";
        output += input.charCodeAt(i);
    }
    if (output == "91, 91, 103, 32"){
        var preditor = document.getElementById('example');
        preditor.value = '';
        preditor.style.display = 'block';
        preditor.focus();
        preditor.select();
    }
}
function insert(objeto, evt){
    var e = evt || event;
    var code = e.keyCode || e.which;
    if(code == '32') {
        var texto = document.getElementById('test').value;
        texto += objeto.value+']]';
        $('#test').focus();
        document.getElementById('test').value = texto;
        objeto.style.display = 'none';
    }
}
$(document).ready(function(){
    var data = "Ab Aco Ado Ala Mano Cata Ca Obo Olo Po Poq".split(" ");
$("#example").autocomplete(data);});

我在这里使用了 Alexander Kahoun 和 pimvdb 发布的内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 event.which 来验证用户是否按下空格键在 Firefox 中不起作用 的相关文章

随机推荐

  • ES6 模块:导入后未定义 onclick 函数

    我正在测试 ES6 模块并希望让用户使用以下命令访问一些导入的函数onclick 测试 html
  • 在 C# 中拖放矩形

    我想知道如何在 C 中绘制矩形 并将其拖放到页面中 我的代码用于绘制它 但我无法拖放它 public partial class Form1 Form public bool drag false int cur x cur y Recta
  • 如何在 Pygame 中对对象或精灵的位置进行动画处理,并将其移向预定义的位置或沿着定义的路径移动?

    我学会了如何在pygame中打印图像 但我不知道如何制作动态位置 它可以自行改变图像位置 我错过了什么 这是我的尝试 import pygame screen size 360 600 screen pygame display set m
  • 从字符串到 MongoDB ObjectID 的转换

    我尝试将字符串 ID 转换为 MongoDB ObjectID public class relevancy test extends Object implements Comparable
  • 在 Android 应用程序中使用 startActivityForResult

    我写了一个应用程序 其中有一个
  • 尝试使用 JSON.Net 使用 SmartyStreets JSON...“无法将 JSON 数组反序列化为组件类型”

    我正在尝试使用 SmartyStreets JSON LiveAddress API 但遇到了一些困难 我承认我对 JSON 不太熟悉 无论如何 我尝试了几种不同的方法 但通常会出现错误 无法将 JSON 数组反序列化为元数据类型 这是 J
  • AJAX 表单提交后重定向

    使用 MVC 4 我有一个部分视图表单 其中包含 Ajax BeginForm 表单按预期提交 结果异步显示在我的主视图中 我想要我的控制器上有一个条件 如果我的表单上的某个参数为真 那么它会重定向到一个全新的页面 而不是在我的主视图中显示
  • 使用 R 下载并读取压缩的 xml 文件

    基于thisDirk Eddelbuettel 的回答 我正在尝试阅读xml文件来自zip存档以供进一步处理 除了 URL 和文件名之外 对引用的代码的唯一更改是我更改了read table to xmlInternalTreeParse
  • 检测输入数字中向上/向下按钮的不同事件

    有没有办法区分输入类型数字的事件向上 向下按钮 我读到有一个change事件 但我想知道我是否可以识别按下向上 向下按钮时的不同事件 我会更清楚
  • SQL Server 中的服务器端分页

    我对 SQL Server 如何使用公用表表达式和 ROW NUMBER 实现更少的读取和性能改进感到有点困惑 为什么表达式中实现的表不必执行普通查询必须执行的所有读取操作 以允许查询使用 ROW NUMBER 进行排序 The CTE不是
  • UiView 内的 IOS swift avplayer 我怎样才能让它工作

    我刚开始使用 AVPlayer for IOS swift 并让它正常工作 不过 我希望视频现在可以在 UIView 内播放 默认情况下视频会占据整个页面 我一直在尝试一些事情 但我的代码没有任何作用 我在该页面上还有其他内容 这就是为什么
  • Android 在WebView中调用JavaScript函数

    我试图调用一些位于 android webview 内运行的 html 页面中的 javascript 函数 下面的代码尝试执行的操作非常简单 从 android 应用程序中 使用测试消息调用 javascript 函数 该函数又调用 an
  • 倒计时至特定日期

    我想做的事情看起来应该很简单 但事实证明很棘手 我需要一个倒计时脚本 它使用目标日期并为我提供三个单独的数字 即距该日期的天数 小时数和分钟数 然后我可以将其插入页面的适当位置 我尝试了 jCountdown 但虽然它是高度可定制的 但我仍
  • php 解析字符串并替换子字符串

    我有一个 PHP 字符串 该字符串出现了该模式 abc some substring xyz 此类子字符串在主字符串中多次出现 每个出现的地方都需要替换为数组中的字符串array substring1 substring2 substrin
  • ASP MVC 将值传递到模态窗口

    我有一个带有模态窗口的视图 当我点击打开模态窗口时 我想传递参数item InstrumentId进入模式窗口 以便我可以单击一个链接 将我重定向到属于 InstrumentId 的特定仪器的页面 我在下面所做的成功地将 Instrumen
  • 按日期对多列重新排序和重新分组

    我对此有点困惑 希望得到一些帮助 这是我的数据 Col A Col B Col C Col D Col E Col F FRANCE ITALY DATE Installs Uninstalls DATE Installs Uninstal
  • 在 C++ 中设置单独的位[重复]

    这个问题在这里已经有答案了 我有一个 5 字节数据元素 我需要一些帮助来弄清楚如何在 C 中设置这些字节之一的单个位 请参阅下面我的示例代码 char m TxBuf 4 我想将位 2 设置为字节的高位m TxBuf 1 00000 0 0
  • Android 中通过触摸事件进行反向地理编码

    我通过此堆栈溢出浏览了几篇文章以及其他与反向地理编码相关的文章 我打算从触摸事件中查找具有给定纬度和经度的地点的名称 我从触摸事件中获取了纬度和经度 但无法从该地理坐标中获取地址 它传递异常而不是在尝试区域中 这是代码 public boo
  • 在 Objective C 中检测 PNG 文件是否损坏

    我正在使用 NSURLRequest 下载 jpg 和 png 这工作正常 但有时文件会损坏 我见过捕获错误 损坏的 JPEG 数据 数据段过早结束并使其适用于 jpg 有谁知道对 png 做同样的事情的方法吗 即以编程方式检查 png 数
  • 使用 event.which 来验证用户是否按下空格键在 Firefox 中不起作用

    我想要一个脚本来验证按下的键是否是 空格键 键码 32 我注意到 IE 使用其他函数名称 我尝试了很多在这里找到的解决方案 event event window event IE does not pass event to the fun