如果我在没有键码的情况下离开它,它将适用于每个键,但我试图添加" /"密钥是键码" 191"而现在我无法让它发挥作用。我甚至尝试过使用preventDefault后仍然没有。我如何正确地编写它以使其工作?是的,我的输入行也有按键,这不是问题。
function setFocusToTextBox(field, event) {
if (event.keyCode === 191) {
document.getElementById("order_number").focus();
}
}
</script>
</head>
<body onLoad="document.chip_insert.chip_number.focus();">
<center>
<h1>Jeffers HomeAgain Microchip Entry</h1>
<form name="chip_insert" id="chip_insert" action="<?php echo $PHP_SELF;?>" onsubmit="return validateForm()" method="post" onkeydown="setFocusToTextBox(field, event)">
Order Number: <input tabindex="1" maxlength="12" type="text" name="order_number" id="order_number" value="<?php echo $value; ?>" required="required"onkeydown="return tabOnEnter(this,event)" onfocus="this.focus();this.select()" /><br /><br />
Tag Number: <input tabindex="2" maxlength="15" type="text" name="chip_number" id="chip_number" required="required" /><br /><br />
<input tabindex="7" type="submit" />
</center>
</form>
<br />
<!--End body content -->
</body>
</html>
答案 0 :(得分:0)
您的代码片段的工作还取决于您调用的事件,尝试在keydown上调用您的函数。
以下是您的工作代码:
document.body.addEventListener("keydown",function(e) {
if (e.keyCode === 191)
alert('Correct');
else
alert('wrong');
});
keyCode可能因不同的关键事件而异。
答案 1 :(得分:0)
试试这个
window.addEventListener('keydown', keydownCallback);
function keydownCallback(event) {
if (event.keyCode === 191) {
setTimeout(setFocusToTextBox); // setTimeout prevents insertion of slash
}
}
function setFocusToTextBox() {
document.getElementById("order_number").focus();
}
<input id="order_number" placeholder="Press / and I will be focused" size="60">