这是我的测试页面。
<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 不会。
这是已知功能还是错误?我错过了什么吗?
最佳答案
删除返回语句。
$("#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/