我有几个 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/