"输入"的默认提交按钮键

时间:2016-01-18 17:43:15

标签: javascript forms perl cgi

我有几个Perl CGI页面,其中有多个提交按钮。这是必要的,因为我需要使用表单数据来更改数据库(例如修改,删除,激活)。

我不知道哪个图层负责,但似乎首先在表单上显示的是哪个提交按钮,当您点击" Enter"在键盘上。

以下是一页的提交按钮示例:

...
      #
      # Modify button
      #
      $cgi->submit(
                   -name  => 'Action',
                   -value => 'Modify',
      ),

      #
      # Delete button
      #
      $cgi->submit(
                   -name  => 'Action',
                   -value => 'Delete',
      ),

      #
      # Activate button
      #
      $cgi->submit(
                   -name  => 'Action',
                   -value => 'Activate',
      ),
      #
      # Reset button
      #
      $cgi->submit(
                   -name  => 'Action',
                   -value => 'Reset',
      ),

      ),

      $cgi->end_form;

      $sth->finish;
    }

对于此页面,我希望修改'按钮是默认值(页面上有更多与行内联的提交按钮)。

我发现的最接近的事情是推荐使用javascript提交按钮来显示我不想成为默认设置的所有按钮,但他们说我还需要列出我想要的默认按钮在顶部。这会打败我将按钮放在任何位置并选择一个作为默认值的目的。

我还看到了一些选项,当用户在使用javascript时点击Enter时可能会捕获。

问题:当用户点击"输入"时,如何设置默认提交按钮?在Perl CGI表单上键入多个提交按钮,按任意顺序?

感谢您抽出宝贵时间来研究这个问题。

2 个答案:

答案 0 :(得分:1)

  

我不知道哪个层负责

这是浏览器中HTML表单的基本处理。

  

但似乎无论哪个提交按钮都会首先显示在您单击键盘上的“Enter”时将执行的表单上。

正确

  

当用户点击Perl CGI表单上的“Enter”键时,如何以任意顺序使用多个提交按钮,如何设置默认提交按钮?

在表单的开头,复制提交按钮。由于它现在是第一个按钮,因此在文本输入中按Enter键提交表单时会触发该按钮。

在其上设置tabindex="-1",使其超出正常的焦点顺序。

将其置于屏幕外,以便用户不会看到它。

答案 1 :(得分:0)

HTML中有一个名为“hidden”的属性。它可以用来隐藏元素。通常在显示元素之前必须满足条件。

CGI.pm 中,您可以通过隐藏所需内容的副本来解决“输入”键的默认提交按钮。将您想要的默认按钮添加到表单顶部,然后添加“-hidden”属性。

 $cgi->submit(-name => 'submit', -value => 'Modify', -hidden),