"Enter" 键的默认提交按钮
Default Submit button for "Enter" key
我有几个 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;
}
对于此页面,我希望 'Modify' 按钮成为默认按钮(页面上有更多与行内联的提交按钮)。
我发现的最接近的建议是对所有按钮使用 javascript 提交按钮我不想成为默认按钮,但是他们说我仍然需要列出我想要的按钮默认在顶部。这将违背我将按钮放置在任何位置并选择一个作为默认按钮的目的。
我还看到了一些选项,当用户在使用 javascript 时单击回车时可能会捕获。
问题:当用户点击 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"
,使其不在正常的聚焦顺序中。
将它放在 off-screen 的位置,这样它就不会出现在用户面前。
HTML 中有一个名为 "hidden" 的属性。它可以用来隐藏元素。通常在显示元素之前必须满足条件。
在 CGI.pm 中,您可以 work-around 'Enter' 键的默认提交按钮,方法是隐藏您想要的按钮的副本。将您希望成为默认按钮的按钮添加到表单顶部并添加“-hidden”属性。
$cgi->submit(-name => 'submit', -value => 'Modify', -hidden),
我有几个 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;
}
对于此页面,我希望 'Modify' 按钮成为默认按钮(页面上有更多与行内联的提交按钮)。
我发现的最接近的建议是对所有按钮使用 javascript 提交按钮我不想成为默认按钮,但是他们说我仍然需要列出我想要的按钮默认在顶部。这将违背我将按钮放置在任何位置并选择一个作为默认按钮的目的。
我还看到了一些选项,当用户在使用 javascript 时单击回车时可能会捕获。
问题:当用户点击 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"
,使其不在正常的聚焦顺序中。
将它放在 off-screen 的位置,这样它就不会出现在用户面前。
HTML 中有一个名为 "hidden" 的属性。它可以用来隐藏元素。通常在显示元素之前必须满足条件。
在 CGI.pm 中,您可以 work-around 'Enter' 键的默认提交按钮,方法是隐藏您想要的按钮的副本。将您希望成为默认按钮的按钮添加到表单顶部并添加“-hidden”属性。
$cgi->submit(-name => 'submit', -value => 'Modify', -hidden),