0

这是一个包含两列的表格,左侧列中包含标签,右侧列中包含表单元素。我试图在第二列中获取椅子颜色的单选按钮。但他们一直在第一列结束。

这是相关的代码:

use HTML::Template;
use CGI qw(:standard);

my $form = '';

$form .= start_form .
  table ({-width=>'100%'},
    Tr([
      td (b ('Chair color:')),
        td (radio_group(-name => 'certificate_type',
                        -values=>['blue','white','green'],)),
      td ([b ('Username:'),  $ENV{REMOTE_USER}]),
      td ([b ('Full name:'), $PARAMS{CURRENT_FULLNAME}]),
      td ([b ('Email:'),     $PARAMS{EMAIL}]),
   ])) . submit('Submit') . reset . end_form;

(更好的办法是让第二列中的按钮垂直堆叠。)

4

1 回答 1

1

我想你想要第一列中的“椅子颜色”,在第二列中三个单选按钮的左侧?

问题是您已将“椅子颜色”radio_group放在两个单独的td元素中,因此它们将出现在单独的行中。

您需要将它们一起传递给一个匿名数组,td因为您有最后三行。

此外, 的参数-columns => 1radio_group强制它们进入单个列。

这段代码似乎可以满足您的需要。

my $form =
    start_form
  . table( {-width=>'100%'},
      Tr([
        td([
          b('Chair color:'),
          radio_group(
            -name => 'certificate_type',
            -values => [ qw/ blue  white  green / ],
            -columns => 1
          )
        ]),
        td([b('Username:'),  'remote user']),
        td([b('Full name:'), 'current fullname']),
        td([b('Email:'),     'email']),
      ])
    )
  . submit('Submit')
  . reset
  . end_form;
于 2012-05-29T20:35:28.147 回答