[html-formfu] update Checkbox field problem

Stephen Shorrock stephen.shorrock at googlemail.com
Fri Mar 12 12:55:31 GMT 2010


Dear Carl,

I was wondering whether you would be able to offer some insight into 
what the issue with my code could be:

I'm attempting to update the value of a check box following a form submit:

Along the lines of

#values hardcoded for example

if(defined($c->stash->{form}->get_field("keep_row"))){
                print STDERR $form->get_field("keep_row)."\n";
            $form->get_field("keep_row")->value("118");
                print STDERR $form->get_field("keep_row")."\n";
            $form->get_field("keep_row")->add_attrs({checked=>'checked'});
                print STDERR $form->get_field("keep_row")."\n";
}

When the checkbox has been checked the checked attribute is removed:

<div class="checkbox"><input name="keep_row" type="checkbox" value="1"  
checked="checked" /></div>
<div class="checkbox"><input name="keep_row" type="checkbox" value="118" 
/></div>
<div class="checkbox"><input name="keep_row" type="checkbox" value="118" 
/></div>

However when the checkbox has not been selected and I want to update 
then I am able to add the checked attribute and modify the value (I'm 
essentially populating the form with database defaults).

<div class="checkbox"><input name="keep_row" type="checkbox" value="1"  
/></div>
<div class="checkbox"><input name="keep_row" type="checkbox" value="118" 
/></div>
<div class="checkbox"><input name="keep_row" type="checkbox" 
value="118"  checked="checked" /></div>

I've tried to debug by writing a test (reading from a yml) with checkbox 
attribute set or unset in the yml file, but this seems to work fine.

Is modifying the field and its attributes the correct way for me to 
build the form, or are there some quirks because I'm trying to modify 
already processed fields? No Filters/Constraints/Plugins exist on the 
Checkbox field

Thanks in advance

Stephen




More information about the HTML-FormFu mailing list