<form action="page.php" method="post">
<input type="text" name="some_text" />
<input type="submit" name="some_submit" /
</form>
我想通过按下定义的键盘按钮来提交此表单。我想知道该怎么做。如果它只是一个<a>
元素,那将很简单 - 我只需在处理按键事件后更改window.location
值。但是有一些数据要发送,我不知道如何解决这个问题。
答案 0 :(得分:2)
数据将作为form.submit()
的结果自动传递答案 1 :(得分:2)
您可以为按键事件创建事件处理程序,然后使用其submit()
方法提交表单,以将所有表单数据传递到收件人页面“page.php”。
使用jQuery,这是微不足道的:
<form id="myForm" action="page.php" method="post">
<input type="text" name="some_text" />
<input type="submit" name="some_submit" />
</form>
<script type="text/javascript">
$('#myForm").keyDown(function(e){
if(e.which == 13) // When key pressed is "Enter" key.
$('#myForm').submit();
});
</script>
阅读Javascript Madness: Keyboard Events,了解有关解释键盘事件的更多信息。
答案 2 :(得分:1)
为表单命名
<form name="myform" action="page.php" method="post">
处理按键事件后
document.myform.submit()
基本上会提交表格。如果你想为它添加更多参数,请在窗体中添加隐藏元素。
答案 3 :(得分:0)
有关按键操作的示例,请参阅http://dev.kanngard.net/Permalinks/ID_20050426091851.html - 如果按下键13(Enter),则会提交表单,但可以修改为任何其他键。
一般情况下:在KeyDown事件中注册要调用的函数,在函数内部,检查按下了哪个键;如果需要,请提交()您的表格。
答案 4 :(得分:0)
我遇到了麻烦:
function action(button) {
if ($('a.'+button+':visible').length > 0) {
if ($('a.'+button+':visible').attr('class') == button || $('a.'+button+':visible').attr('class') == 'rotate '+button) {
var adr = $('a.'+button+':visible').attr('href');
window.location = adr;
}
if ($('a.'+button+':visible').attr('class') != button) {
$('a.'+button+':visible').click();
}
}
if ($('input.'+button+':visible').length > 0) {
$('#form').submit();
}
}
变量'button'是按钮的classname,#form是form的id。通过单击提交它可以正常工作,但它不能通过键盘事件工作。