2013-03-15 33 views
0

我使用HTML::FormHandler,建设形式动态,像这样:HTML :: FormHandler只是1选项不正确渲染

my $form = HTML::FormHandler->new(
      name => 'types', 
      field_list => [ 
       parent_id => { 
        type => 'Select', 
        label => 'Parent', 
        required => 1, 
        options => [{value=>'test',label=>'test'}], 
       }, 
      ], 
); 

每当我只在像上面一个选项传递,这是渲染输出为以下形式:

<select name="parent_id" id="parent_id"> 
    <option id="parent_id.0" value="test"> </option> 
    <option id="parent_id.1" value="test"> </option> 
</select> 

然而,得到的输出应为:

<select name="parent_id" id="parent_id"> 
    <option id="parent_id.0" value="test">test</option> 
</select> 

但是,一旦我添加多一个选择,比如这个:

options => [{value=>'test',label=>'test'},{value=>'test2',label=>'test2'}], 

然后输出正确呈现,并成为:

<select name="parent_id" id="parent_id"> 
    <option id="parent_id.0" value="test">test</option> 
    <option id="parent_id.1" value="test2">test2</option> 
</select> 

这是一个错误的HTML::FormHandler的一部分,或者是有件事我在这里失踪?谢谢!

+0

无法在我的Mac 10.8.2上重现您的问题,perl 5.16.1 – Alec 2013-03-15 04:41:06

+0

@Alec,嗯有趣。我在6.3上安装了perl 5.10.1。 – srchulo 2013-03-15 05:35:59

回答

0

可能选择类型至少有两个选项。如果您必须使用选择选项作为一个选项,并且不能使用复选框或单选按钮(例如,如果选择列表是动态生成的),您是否可以将第一个选项设置为默认非值,并请选择一个选项。 ..' 标签。