我有几个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表单上键入多个提交按钮,按任意顺序?
感谢您抽出宝贵时间来研究这个问题。
答案 0 :(得分:1)
我不知道哪个层负责
这是浏览器中HTML表单的基本处理。
但似乎无论哪个提交按钮都会首先显示在您单击键盘上的“Enter”时将执行的表单上。
正确
当用户点击Perl CGI表单上的“Enter”键时,如何以任意顺序使用多个提交按钮,如何设置默认提交按钮?
在表单的开头,复制提交按钮。由于它现在是第一个按钮,因此在文本输入中按Enter键提交表单时会触发该按钮。
在其上设置tabindex="-1"
,使其超出正常的焦点顺序。
将其置于屏幕外,以便用户不会看到它。
答案 1 :(得分:0)
HTML中有一个名为“hidden”的属性。它可以用来隐藏元素。通常在显示元素之前必须满足条件。
在 CGI.pm 中,您可以通过隐藏所需内容的副本来解决“输入”键的默认提交按钮。将您想要的默认按钮添加到表单顶部,然后添加“-hidden”属性。
$cgi->submit(-name => 'submit', -value => 'Modify', -hidden),