[Catalyst] HTML::FormHandler setting html attributes programatically in form class

Hetényi Csaba csabiwork at tata.hu
Mon Jan 11 10:26:20 GMT 2016

Dear Friends

Please, forgive me, i know, this is not a HTML::FormHandler related 
list, but i hope, there are a lot of people here who use it!

In a catalyst app, i'd like to disable (make the field readonly and 
disabled but not inactive) a form field based on a value (if user has 
the role, or not).
If i set "hardwired" in the form class:

> has_field 'foo' => ( type => 'Text', element_attr => { readonly => 
> 'readonly' }, disabled => 1 );

works perfectly.

But i'd like to apply the readonly/disabled attributes based on a 
boolean value in form class.

I see, there is a "html_attributes callback" but don't know, how to use it:
> sub html_attributes {
>     my ( $self, $obj, $type, $attrs, $result ) = @_;
>     # obj is either form or field
>     $attrs->{class} = 'label' if $type eq 'label';
>     $attrs->{placeholder} = $self->_localize($attrs->{placeholder})
>         if exists $attrs->{placeholder};
>     return $attrs;
> }

Thank You in advance!

More information about the Catalyst mailing list