HTML :: FormHandler动态字段添加了客户端

时间:2014-01-31 22:39:04

标签: perl html-form catalyst

我正在使用HTML::FormHandler,我希望有一个具有动态数量的表单元素的表单。基本上,我有一些始终存在的输入,例如first_namelast_nameemail,但我有一个输入,pracitce_area,我可以有很多动态的(practice_area1pracitce_area2等)。因此,在客户端,我将使用jQuery动态添加更多practice_area输入,我希望我的HTML :: FormHandler表单能够处理动态数量的这些输入并验证它们并将它们放在数据库中。 practice_area输入将存储在一个单独的表中,该表将与此表单元素的外键相关联,因此我希望HTML :: FormHandler知道这些是相关的,并提取一个动态数字在编辑时,还可以在保存时将动态数字保存到数据库中。有没有办法用HTML::FormHandler处理这样的事情?这是我的表单的定义:

package test::Form::Base;
use namespace::autoclean;
use HTML::FormHandler::Moose;
with 'HTML::FormHandler::TraitFor::Model::DBIC';    

has title => ( is => 'ro', default => 'Client Information Form');
has '+item_class' => ( default => 'ClientInformationForm' );

has_field 'first_name' => (
    type         => 'Text',
    label => 'First Name',
    required => 1,
);

has_field 'last_name' => (
    type         => 'Text',
    label => 'Last Name',
    required => 1,
);

has_field 'email' => (
    type         => 'Email',
    label => 'Email',
    required => 1,
);

#would like to have this be dynamic in number, and have HTML::FormHandler know 
#that it's related with a foreign key when pulling them out of the database
has_field 'practice_area' => (
    type         => 'TextArea',
);
no HTML::FormHandler::Moose;
__PACKAGE__->meta->make_immutable;
1;

1 个答案:

答案 0 :(得分:1)

你看过HTML::Formhandler::Repeatable了吗?

您应该只能在表单中使用practice_area并拥有多个条目。这些只是在表单处理中拉入一个数组(ref)。