javascript - "Enter" key 的默认提交按钮

标签 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 表单上的“Enter”键时,如何设置默认提交按钮,并且有多个提交按钮,顺序不限?

感谢您花时间查看此内容。

最佳答案

I don't know what layer is responsible

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

but it seems that whichever submit button is displayed first on the form that is the one that will execute when you click "Enter" on the keyboard.

正确

How can I set a default submit button when the user clicks the "Enter" key on a Perl CGI form, with multiple submit buttons, in any order?

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

对其设置tabindex="-1",使其不符合正常的焦点顺序。

将其放置在屏幕外,这样用户就不会看到它。

关于javascript - "Enter" key 的默认提交按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34860879/

相关文章:

javascript - Angular 4 中的全局错误处理程序

javascript - 使用 parsleyjs onkeyup 验证

javascript - 如何在单击某个单选按钮后禁用复选框。

perl - 如何将控制台输出重定向到文本文件

没有换行符,Perl 不会打印多个变量

javascript - 相同高度动态 "carousel slides"不扩展父级

javascript - React-select 不会在 Enter 上提交表单

Javascript 日期计算返回不正确的值

php - 表单有时仅有效(PHP mySQL)

macos - 在带空格的目录中查找最后修改的文件