HTML :: FormHandler渲染字段没有标签

时间:2011-02-03 13:16:22

标签: perl webforms template-toolkit

使用HTML :: FormHandler公式我想只渲染表单字段的字段部分。

<div>
  my label [% form.field('name').render %] 
</div>

这会渲染字段和标签。

3 个答案:

答案 0 :(得分:3)

我在代码中看到渲染器检查:

$self->has_flag('no_render_label')

所以你需要设置这个标志。 怎么做的?我只能猜一猜。

您没有指定正在使用的小部件,如果我理解正确,您应该扩展他并创建自己的小部件。

package HTML::FormHandler::Field::Checkbox::NoLabel;
use HTML::FormHandler::Moose;
extends 'HTML::FormHandler::Field::Checkbox';
our $VERSION = '0.01';

has '+no_render_label' => ( default => 1 );

答案 1 :(得分:1)

对于未来的搜索者:

您可以在表单类中定义字段时设置do_label属性。

has_field 'name' => (
    type => 'Text'
    do_label => 0,
);

来源:HTML::FormHandler field attribute reference

答案 2 :(得分:0)

我在HFH的手册中找到了另一种方法。

package Test::Form;
use HTML::FormHandler::Moose;
extends 'HTML::FormHandler';

has '+name' => ( default => 'testform' );
has '+widget_wrapper' => ( default => 'None' );
has '+auto_fieldset' => ( default => 0 );
has_field 'foo';