我如何获得我的键码来关注元素?

时间:2015-01-13 21:13:39

标签: javascript

如果我在没有键码的情况下离开它,它将适用于每个键,但我试图添加" /"密钥是键码" 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>

2 个答案:

答案 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">

  1. 按Run Code Snippet
  2. 点击输入周围区域的某处
  3. 按/,输入将被聚焦。