按数字键提交表格

Key number press to submit form

这是手持扫描仪网站 (PocketPC) 的页面,因此为了在键盘上按下数字 1 时便于操作设备,提交底部 1。我不知道为什么它不适合我。

function check1(e) {
  if (e.KeyCode == 49) {
    document.forms[0].submit();
  }
}
<form id="form1" name="form1" method="post" action="test.php">
  <input type="submit" name="button" id="button" value="Submit" onkeypress="check1(event)" />
</form>

谢谢

onkeypress 事件在整个文档上触发,而不是在您的输入按钮上触发。所以你需要像这样设置你的事件处理程序:

var form1 = document.getElementById('form1');
document.addEventListener('keypress', function (e) {
    if (e.keyCode === 49) { // note camel casing: keyCode, not KeyCode
        form1.submit();
    }
});

您需要将事件附加到整个文档,而不仅仅是 <input> 在这种情况下。这是因为您希望在 <input> 未处于焦点时触发操作事件。只有在焦点上时,您的代码才会激活。

我已经做了更改:

查看片段:

document.addEventListener("keypress", function(event) {
  var keycode = (event.keyCode ? event.keyCode : event.which);
  if (keycode == '49') {
    document.forms[0].submit();
  }
});
<form id="form1" name="form1" method="post" action="test.php">
  <input type="submit" name="button" id="button" value="Submit"/>
</form>

有效:

$(function(){
  $('*').keyup(function(e){
      if(e.keyCode=='49'){
        document.forms[0].submit();
      }       
  })
})

一个jQuery方法

$(document).on('keypress',function(e){
if(e.keyCode === 49){
    $('#form1').submit();
}
})