按键提交表单

时间:2013-07-04 19:10:44

标签: php javascript

我有一个带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>

2 个答案:

答案 0 :(得分:1)

看看this

您需要将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>

这是输出: enter image description here

更新2 下面的代码总是与您拥有的值进行比较,并始终处理大写字母,因此即使您按下它也会转换为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();
   }
}

<强> UPDATE3

这是代码的更新版本:

<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>
祝你好运。

答案 1 :(得分:0)

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

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

您的按钮需要一个键码。