javascript - 如果我在 Keydown 事件中设置断点,我输入的键将不会附加到文本框

标签 javascript google-chrome firefox

这是我的测试页面。

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript" src="http://code.jquery.com/jquery-2.1.4.js"></script>
    <script type="text/javascript">
        $(function ()
        {
            $("#myInput").keydown(function ()
            {
                return; //(X)
            });
        });
    </script>
</head>
<body>
    <input type="text" id="myInput" />
</body>
</html>

JavaScript 不应干扰用户输入,但如果我打开开发人员控制台并在 (X) 处的 Keydown 事件中设置断点,我键入的键将不会附加到文本框。 Chrome 44.0.2403.155 m 和 Firefox 39.0.3 中也会发生同样的情况,但 IE 10 不会。

这是已知功能还是错误?我错过了什么吗?

I typed "1" into the text box, the break point is hit. 图1:我在文本框中输入“1”,断点被命中。

I then click Continue, the "1" I typed doesn't show in the text box. 图 2:然后单击“继续”,我输入的“1”没有显示在文本框中。

最佳答案

删除返回语句。

$("#myInput").keydown(function (e) {
  console.log( e.type );
} );

没有值的 return 语句返回未定义,jQuery 将其解释为 false。当你在 jQuery 事件处理程序中返回 false 时,就像你调用了:

e.preventDefault();
e.stopPropagation();

这两行将停止浏览器对事件的默认 react ,即将键的值放入输入中。

关于javascript - 如果我在 Keydown 事件中设置断点,我输入的键将不会附加到文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33044607/

相关文章:

javascript - 如果我使用 Delete,如何在 Javascript 中计算数组中的所有值

javascript - 在 IE7 中,JSP 中的操作 "javascript:history.back()"跳回到主页面,而不是之前查看的页面

javascript - 如何将数据从父窗口传递到弹出窗口

javascript - 警告 : Added non-passive event listener to a scroll-blocking 'touchstart' event

swing - JTabbedPane 上的 Firefox 'Open new tab'

Javascript数组输入并显示用户定义的数据

javascript - 交换 css 字体时是否发出 js 事件?

javascript - "toLocaleString"在不同的浏览器上给出不同的输出

javascript - 使用 JavaScript 捕获视频和音频

javascript - get PreventDefault() - 是否可以覆盖、替换或类似的操作?