当前位置: 首页 > 面试题库 >

在JavaScript中输入按键事件

岳浩
2023-03-14
问题内容

我有一个form带有两个文本框,一个 选择 下拉菜单和一个 单选按钮
。当enter按下该键时,我想调用一个Javascript函数(用户定义),但是当我按下它时,将提交表单。

按下键form时如何防止提交**enter**


问题答案:

if(characterCode == 13)
{
return false; // returning false will prevent the event from bubbling up.
}
else
{
return true;
}

好的,假设您在表单中有以下文本框:

<input id="scriptBox" type="text" onkeypress="return runScript(event)" />

为了在按下Enter键时从此文本框中运行某些“用户定义”脚本,而不让其提交表单,下面是一些 示例
代码。请注意,此功能不执行任何错误检查,很可能仅在IE中有效。为此,您需要一个更强大的解决方案,但您将获得一般的想法。

function runScript(e) {
    //See notes about 'which' and 'key'
    if (e.keyCode == 13) {
        var tb = document.getElementById("scriptBox");
        eval(tb.value);
        return false;
    }
}

返回该函数的值将警告事件处理程序不要再使事件冒泡,并且将防止进一步处理keypress事件。

注意:

它已经指出,keyCode在现在已经过时。下一个最好的替代which已经也被弃用。

不幸的key是,受现代浏览器广泛支持的受人欢迎的标准在IE和Edge中具有某些[躲避行为。IE11之前的任何版本都仍需要polyfill。

此外,尽管过时的警告对于keyCode和都是不祥的警告which,但删除这些警告将意味着对不计其数的旧版网站的巨大突破。因此,他们不太可能很快就去任何地方。



 类似资料:
  • > 我有一个代码,当用户在

  • 问题内容: 显然一个被禁用的没有被任何事件处理 有没有解决此问题的方法? 在这里,我需要单击输入以启用它。但是,如果我不激活它,则不应发布输入。 问题答案: 禁用的元素不会触发鼠标事件。大多数浏览器会将事件从禁用元素传播到DOM树,因此事件处理程序可以放在容器元素上。但是,Firefox不会表现出这种行为,当您单击禁用的元素时,它根本不执行任何操作。 我想不到更好的解决方案,但是,为了完全兼容跨浏

  • 嗨,在用pygame开发游戏时,有一个问题其实并不重要,但它一直困扰着我一段时间。 所以上面是一个工作代码,我相信 同样有效。 然而,当我只是尝试类似“event.key==pyplay。K_RIGHT:",python给我一个错误,说没有属性'key'。虽然我知道选择以上2个代码会更合理,而不仅仅是“event.key==pyplay。K_RIGHT:",我不知道为什么pyplay会说事件没有属

  • 我有一个包含5个步骤的多步骤表单。我希望用户能够使用enter键提交每个子表单,以触发验证,并在成功后移动到下一个子表单。我找不到这样做的方法。我在想,也许我可以将ng keydown事件添加到每个子窗体(或绑定到onkeydown的自定义指令),并观察回车键。 有没有人有过让它在角度上工作的经验?您将如何添加此功能? 下面是子表单的简单HTML示例。假设“下一步”按钮正在触发范围。nextSte

  • 我正在使用Selenium WebDriver和Ruby进行自动化测试。我需要点击一个按钮。我无法通过id、css或xpath获得按钮元素,因为按钮是透明的。我想用Tab键和Enter键按下按钮。

  • 可能的重复: 跨浏览器方式,以便在按住键时自动获取重复的按键事件 我正在尝试用JavaScript/CSS/超文本标记语言创建一个简单的游戏,我正在使用jQuery(和一点下划线)来处理按键。玩家使用箭头键控制一个块。我在同时处理多个按键时遇到了问题。我有一个系统,其中闭包跟踪所有按下的箭头键。如果玩家按以下顺序按键,这个效果很好: 玩家按下(块向下移动) 玩家按下左(块对角线向下移动-左) 玩家