2013-03-15 23 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

可能選擇類型至少有兩個選項。如果您必須使用選擇選項作爲一個選項,並且不能使用複選框或單選按鈕(例如,如果選擇列表是動態生成的),您是否可以將第一個選項設置爲默認非值,並請選擇一個選項。 ..' 標籤。