-1

我想显示 2 个用于选择学生性别的单选按钮。当我尝试使用CGI Perl 模块设置一个变量来为这些单选按钮生成 html 代码时,只显示单选选择文本,而不是按钮:

$cInput_form .= $q->div({-class => 'control-group'},
                    $q->label({-class => 'control-label', -for => 'gender'}, "Gender:"), 
                    $q->div({class => 'controls'}, 
                    $q->span({class => 'span12'},
                    $q->label({-class => 'blue'},
                    $q->radio_group({-id => 'gender',name => 'gender', -values => ['M','F'], -labels => \%labels, -default => $cGender, 'true'}), $q->span({-class => 'lbl'})))));

当我在我的网络浏览器中使用“检查元素”工具时,我看到的 html 是:

<div class="control-group">
  <label class="control-label" for="gender">Gender:</label>
  <div class="controls">
    <span class="span12">
      <label class="blue">
        <label>
          <input type="radio" name="gender" value="M" checked="checked" id="gender" true="">
          Male
        </label>
        <label>
          <input type="radio" name="gender" value="F" id="gender" true="">
          Female
        </label>
        <span class="lbl"></span>
      </label>
    </span>
  </div>
</div>

我认为问题在于它<span class = 'lbl'>不在正确的位置,但我不知道它应该在哪里。请帮我。

4

1 回答 1

0

我认为问题可能是您将 radio_group 分组在不必要的标签组中。页面显示了与您想要创建性别选择单选按钮组的情况类似的代码。

尝试将您的代码更改为(重新格式化以使其更具可读性):

$cInput_form .= $q->div({-class => 'control-group'},
                $q->label({-class => 'control-label', 
                           -for   => 'gender'}, Gender:"), 
                $q->radio_group({-id => 'gender',
                                 name => 'gender', 
                                 -values => ['M','F'], 
                                 -labels => \%labels, 
                                 -default => $cGender, 
                                 'true'}),
                        );

这是未经测试的,但我认为已经过分了,在将一个部分分组到另一个部分时要小心。希望能帮助到你!

于 2013-08-19T23:19:19.127 回答