这是我的测试页。

<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中却没有。

它是已知功能或错误吗?我有想念吗?

javascript - 如果我在Keydown事件中设置了一个断点,则我键入的 key 将不会附加到文本框中-LMLPHP
图1:我在文本框中输入“ 1”,命中了断点。

javascript - 如果我在Keydown事件中设置了一个断点,则我键入的 key 将不会附加到文本框中-LMLPHP
图2:然后单击“继续”,键入的“ 1”不会显示在文本框中。

最佳答案

删除return语句。

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


没有值的return语句返回undefined,jQuery将其解释为false。当您在jQuery事件处理程序中返回false时,就像您所说的那样:

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


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

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

10-09 07:27