{
has
'+name'
=> (
default
=>
'renderform'
);
has_field
'test_field'
=> (
type
=>
'Text'
,
label
=>
'TEST'
,
id
=>
'f99'
,
);
has_field
'number'
;
has_field
'fruit'
=> (
type
=>
'Select'
);
has_field
'vegetables'
=> (
type
=>
'Multiple'
);
has_field
'opt_in'
=> (
type
=>
'Select'
,
widget
=>
'radio_group'
,
options
=> [{
value
=> 0,
label
=>
'No'
}, {
value
=> 1,
label
=>
'Yes'
} ] );
has_field
'active'
=> (
type
=>
'Checkbox'
);
has_field
'comments'
=> (
type
=>
'TextArea'
);
has_field
'hidden'
=> (
type
=>
'Hidden'
);
has_field
'selected'
=> (
type
=>
'Boolean'
);
has_field
'start_date'
=> (
type
=>
'DateTime'
);
has_field
'start_date.month'
=> (
type
=>
'Integer'
,
range_start
=> 1,
range_end
=> 12 );
has_field
'start_date.day'
=> (
type
=>
'Integer'
,
range_start
=> 1,
range_end
=> 31 );
has_field
'start_date.year'
=> (
type
=>
'Integer'
,
range_start
=> 2000,
range_end
=> 2020 );
has_field
'two_errors'
=> (
apply
=> [
{
check
=> [ ],
message
=>
'First constraint error'
},
{
check
=> [ ],
message
=>
'Second constraint error'
}
]
);
has_field
'submit'
=> (
type
=>
'Submit'
,
value
=>
'Update'
);
has
'+dependency'
=> (
default
=>
sub
{ [ [
'start_date.month'
,
'start_date.day'
,
'start_date.year'
] ] } );
has_field
'no_render'
=> (
widget
=>
'no_render'
);
sub
options_fruit {
return
(
1
=>
'apples'
,
2
=>
'oranges'
,
3
=>
'kiwi'
,
);
}
sub
options_vegetables {
return
(
1
=>
'lettuce'
,
2
=>
'broccoli'
,
3
=>
'carrots'
,
4
=>
'peas'
,
);
}
}
my
$form
= Test::Form->new;
ok(
$form
,
'create form'
);
ok(
$form
->render,
'get table rendered output from form'
);
done_testing;