HTML文本框不起作用

Cod*_*end -2 html javascript jquery keydown preventdefault

我想在F1按钮点击时从当前重定向到下一页.页面重定向正确,但当前页面的文本框不起作用.

$(document).ready(function () {
    $("body").keydown(function (e) {
        e.preventDefault();
        if (event.keyCode === 112) {
            window.location.href = "../nextpage.aspx";
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能解决这个问题?

ADy*_*son 10

目前,您的"preventDefault()"会在所有情况下触发,阻止其他键正常工作.如果您发现密钥是F1特定的,那么您真的只需要这样做:

演示非工作代码:

请注意,无法在文本框中键入任何内容,因为每个键的默认行为都被禁止.

$(document).ready(function() {
  $("body").keydown(function(e) {
    e.preventDefault();
    if (e.keyCode === 112) {
      window.location.href = "../nextpage.aspx";
    }
  });
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" />
Run Code Online (Sandbox Code Playgroud)

固定版本:

我只是在if语句中移动preventDefault()来检测按下的确切键.

$(document).ready(function() {
  $("body").keydown(function(e) {
    if (e.keyCode === 112) {
      e.preventDefault();
      window.location.href = "../nextpage.aspx";
    }
  });
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text"/>
Run Code Online (Sandbox Code Playgroud)

PS我还在你的陈述中修复了e/ eventmixup if.