-1

我有一个带有 4 个按钮的表单。我想让每个提交按钮绑定到一个按键,以便在按下键(a、s、d、f)时提交表单并传递分配给该提交按钮的值。我的目标是为 4 个单独的按钮设置热键。我被卡住了,我抬头学习了如何使用 javascript 来查看按下了什么键,但是我在传递该键以提交表单时遇到问题。如何将键绑定到按钮以提交表单并传递值?感谢您的帮助。

这是解决方案 *感谢帮助我的人

<html>
<head>
<script type='text/javascript'>
onload = function(){
document.onkeypress=function(e)
  {
  var evtobj=window.event? event : e
  var code=evtobj.charCode? evtobj.charCode : evtobj.keyCode
  var asciiStr=String.fromCharCode(code);
  document.getElementById("key").value = asciiStr.toUpperCase();
  if(['A', 'S', 'D', 'F' ].indexOf(asciiStr.toUpperCase()) != -1){
    document.getElementById("Ability").submit();
   }
}
}

</script>
</head>
<body>

<?php

if (isset($_POST['A']) || isset($_POST['S']) || isset($_POST['D']) || isset($_POST['F']) || isset($_POST['key']))
{
$value= $_POST['key'];
    if (isset($_POST['A']) OR $value == 'A')
        {
        echo 'A';
        }
    if (isset($_POST['S']) OR $value == 'S')
        {
        echo 'S';
        }
    if (isset($_POST['D']) OR $value == 'D')
        {
        echo 'D';
        }
    if (isset($_POST['F']) OR $value == 'F')
        {
        echo 'F';
        }
}
?>


<form name="Ability" id="Ability" method="post" action="">
<input class="text" type=text id=key name=key  value="" />
<input type=submit name="A" value="A">
<input type=submit name="S" value="S">
<input type=submit name="D" value="D">
<input type=submit name="F" value="F">
</form>
</body>
</html>
4

2 回答 2

1

看看这个

您需要将 id 更改为表单的 id:

onload = function(){
document.onkeypress=function(e)
  {
  var evtobj=window.event? event : e
  var code=evtobj.charCode? evtobj.charCode : evtobj.keyCode
  var asciiStr=String.fromCharCode(code);
  document.getElementById("Ability").submit();
   document.getElementById("key").value = asciiStr;
}
}

更新: 这是代码:

<html>
<head>
<script type='text/javascript'>
onload = function(){
document.onkeypress=function(e)
  {
  var evtobj=window.event? event : e
  var code=evtobj.charCode? evtobj.charCode : evtobj.keyCode
  var asciiStr=String.fromCharCode(code);
  document.getElementById("key").value = asciiStr;
  document.getElementById("Ability").submit();

}
}

</script>
</head>
<body>

<?php

if (isset($_POST['A']) || isset($_POST['key']))
{
echo 'Worked';
}

echo '<br>';
echo '<pre>';
    var_dump($_POST);
echo '</pre>';
?>


<form name="Ability" id="Ability" method="post" action="">
<input class="text" type=text id=key name=key  value="" />
<input type=submit name="A" value="A">
<input type=submit name="S" value="S">
<input type=submit name="D" value="D">
<input type=submit name="F" value="F">
</form>
</body>
</html>

这是输出: 在此处输入图像描述

更新 2 下面的代码始终与您拥有的值进行比较,并始终处理大写字母,因此即使您按 a,它也会被转换为 A。

document.onkeypress=function(e)
  {
  var evtobj=window.event? event : e
  var code=evtobj.charCode? evtobj.charCode : evtobj.keyCode
  var asciiStr=String.fromCharCode(code);
  document.getElementById("key").value = asciiStr.toUpperCase();
  if(['A', 'S', 'D', 'F' ].indexOf(asciiStr.toUpperCase()) != -1){
    document.getElementById("Ability").submit();
   }
}

更新3

这是代码的更新版本:

<html>
<head>
<script type='text/javascript'>
onload = function(){
document.onkeypress=function(e)
  {
  var evtobj=window.event? event : e
  var code=evtobj.charCode? evtobj.charCode : evtobj.keyCode
  var asciiStr=String.fromCharCode(code);
  document.getElementById("key").value = asciiStr.toUpperCase();
  if(['A', 'S', 'D', 'F' ].indexOf(asciiStr.toUpperCase()) != -1){
    document.getElementById("Ability").submit();
   }
}
}

</script>
</head>
<body>

<?php

if (isset($_POST['A']) || isset($_POST['key']))
{
echo 'Worked';
}

echo '<br>';
echo '<pre>';
    var_dump($_POST);
echo '</pre>';
?>


<form name="Ability" id="Ability" method="post" action="">
<input class="text" type=text id=key name=key  value="" />
<input type=submit name="A" value="A">
<input type=submit name="S" value="S">
<input type=submit name="D" value="D">
<input type=submit name="F" value="F">
</form>
</body>
</html>

祝你好运。

于 2013-07-04T19:24:12.800 回答
0

我将这种结构用于我的项目

<input id="your_id" onkeydown="if (event.keyCode == 13) submit_function()">

相当容易。

您的按钮需要一个键码。

于 2013-07-04T19:39:09.567 回答