我有一个带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>
答案 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>
这是输出:
更新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()">
很容易。
您的按钮需要一个键码。