如何通过单击键盘按钮提交Web表单?

时间:2009-09-18 12:10:46

标签: php javascript

<form action="page.php" method="post">
    <input type="text" name="some_text" />
    <input type="submit" name="some_submit" /
</form>

我想通过按下定义的键盘按钮来提交此表单。我想知道该怎么做。如果它只是一个<a>元素,那将很简单 - 我只需在处理按键事件后更改window.location值。但是有一些数据要发送,我不知道如何解决这个问题。

5 个答案:

答案 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。通过单击提交它可以正常工作,但它不能通过键盘事件工作。