【问题标题】:Disable backspace browser functionality and use to clear text in div instead禁用退格浏览器功能并用于清除 div 中的文本
【发布时间】:2015-08-27 16:42:28
【问题描述】:

上下文:我正在创建一个“人造命令行”网站。您可以在 div 中的虚假提示符下键入命令。

问题:如果您输入错误并需要退格一两个字符怎么办?按退格键后,我的浏览器会返回上一个网页。

我的一半解决方案:通过检测键禁用浏览器中的退格功能。我通过检测退格的'keydown'事件并返回false来做到这一点。但是现在浏览器功能已被阻止(返回 false),事件结束了。我无法对将执行我正在尝试创建的退格功能的事件调用以下函数。

我的问题:你如何阻止功能,然后继续事件并调用函数来做我想做的事情(警报、函数调用等)?

请到我的 CodePen 查看完整代码。但这里有一个 sn-p:

   $(document).keydown(function(e) {
  if (e.keyCode == 8) {
    return false;
  **//I need to call a function here!!!!!!**
  } else {
  prompt.keyDetector(e);
  }
});

My Faux Command Line Link

【问题讨论】:

  • 为什么不使用<input type="text"><textarea> 来获取用户的输入?默认情况下,这些元素会阻止此行为。
  • 尝试使用e.preventDefault()e.stopPropagation()
  • 看! J Santosh 回答了我的问题。谢谢!!!

标签: javascript jquery


【解决方案1】:

您可以使用 e.preventDefault() 来阻止事件的默认操作。

$(document).keydown(function(e) {
  if (e.keyCode == 8) {
    e.preventDefault();
    //call function
    return false;
  } else {
  prompt.keyDetector(e);
  }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-29
    • 2013-01-26
    • 2020-10-22
    • 2012-08-27
    相关资源
    最近更新 更多