这是我的测试页。
<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中却没有。
它是已知功能或错误吗?我有想念吗?
图1:我在文本框中输入“ 1”,命中了断点。
图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/