我正在使用HTML :: FormHandler为表单开发Perl / Catalyst Web应用程序。 如果选中复选框,我正在尝试对字段进行条件验证。
以下代码来自我为我的表单创建的角色。
has_field 'autosys_jobs.schedule.has_run_day_of_month' => ( type=>'Boolean');
has_field 'autosys_jobs.schedule.run_day_of_month' => ( type => 'PosInteger');
#Validation function for 'autosys_jobs.schedule.run_day_of_month'
sub validate_autosys_jobs_schedule_run_day_of_month {
my ( $self, $field ) = @_;
if( $self->field('autosys_jobs.schedule.has_run_day_of_month')->value ) {
#validate 'autosys_jobs.schedule.run_day_of_month'
}
}
我遇到的问题是$self->field('autosys_jobs.schedule.has_run_day_of_month')->value
对于布尔字段,即使选中它也总是返回0。
关于我做错的任何想法?
答案 0 :(得分:0)
在深入研究HTML :: FormHandler文档后,我弄清楚了我的错误。 字段autosys_jobs.schedule是一个复合字段(忘了提及)
has_field 'autosys_jobs.schedule' => ( type => 'Compound');
为了访问感兴趣的领域,我必须在我的验证子中使用以下内容:
$self->field('autosys_jobs.0.schedule.has_run_day_of_month')->value
全部谢谢