2013-07-04 3 views
-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> 
+5

http://api.jquery.com/keydown/ Примечание: 'java' является ** NOT **' javascript'. –

+1

[** StackOverflow **] (http://bit.ly/4Agih5) - это ** НЕ! **, место, где можно попросить кого-нибудь бесплатно «коды». [Такие вопросы ** не подходят ** для этого сайта] (http://bit.ly/dcqznq) и будут [** Закрыты **] (http://bit.ly/18T95z1), или [** Удалено **] (http://bit.ly/10c3VuR), * Вместо этого * [Узнайте, какой тип] (http://bit.ly/r0ZSEc) вопросов, которые вы можете или должны задать. Если у вас есть какие-либо вопросы по этому поводу, не стесняйтесь спрашивать на [Meta] (http://bit.ly/SgO5J), или проверьте [FAQ] (http://bit.ly/18T95z1), страницу для общей информации , – samayo

+0

http://stackoverflow.com/questions/5061353/how-to-create-a-keyboard-shortcut-for-an-input-button –

ответ

1

Посмотрите на this.

Вам нужно изменить идентификатор к форме идентификационному:

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; 
} 
} 

Update: Это код:

<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 Код ниже, чтобы всегда сравнивать со значениями, у вас есть и всегда иметь дело с заглавной буквы, так что даже если вы нажимаете он будет преобразован А.

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> 

Удачи.

+0

Хорошо, я вижу Но моя главная проблема это сообщение –

+0

В чем проблема с сообщением? –

+0

Я обновил свой код выше. Я не могу заставить эхо отображать, чтобы сказать, какая кнопка нажата, когда вы нажимаете клавишу буквы. –

0

Я использую эту конструкцию для моих проектов

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

довольно легко.

Вам нужен ключ для ваших кнопок.

+0

Спасибо, я играю с этим методом, чтобы посмотреть, смогу ли я заставить его работать –

+0

@JoeCurnow, если вы пишете то, что вам нужно, я вам поможем. Я не понимаю, что вы хотите от вашего вопроса, и от комментариев к другому ответу. –

+0

Я хочу иметь 4 кнопки, которые назначили клавиши a, s, d, f. Когда вы нажимаете эту клавишу на клавиатуре, я хочу, чтобы код передал эту букву как переменную, чтобы я мог использовать ее для дальнейшего кода. –

Смежные вопросы