Checkbox problem - checkboxes submitting that are unchecked

C

Claire

Hello,

I am having a problem in my struts application with the checkboxes in
my form. I have an array of checkboxes, some of which may be already
selected when the form loads. My problem is when the user then
deselects one or more of these checkboxes and submits the form -
they're being submitted as if they were still checked, when the user
has infact deselected them.

I've heard that this is a common problem, but I don't seem to be able
to find the problem / resolution with any search criteria. If anybody
knows the fix for this it would be greatly appreciated (preferably
without having to use Javascript)

Many Thanks, Claire

Here's the HTML for the checkbox part of the form when it's initially
loaded.

<table style="width:50%;" cellpadding="0" cellspacing="0">
<tr class="spreadsheetvalue">
<td align="left" width="85%">Red</td>
<td align="left" width="15%">
<input type="checkbox" name="cust[0].add" value="on"
checked="checked">
</td>
</tr>
<tr class="spreadsheetvalue">
<td align="left" width="85%">Orange</td>
<td align="left" width="15%">
<input type="checkbox" name="cust[1].add" value="on"
checked="checked">
</td>
</tr>
<tr class="spreadsheetvalue">
<td align="left" width="85%">Yellow</td>
<td align="left" width="15%">
<input type="checkbox" name="cust[2].add" value="on"
checked="checked">
</td>
</tr>
<tr class="spreadsheetvalue">
<td align="left" width="85%">Green</td>
<td align="left" width="15%">
<input type="checkbox" name="cust[3].add" value="on">
</td>
</tr>
<tr class="spreadsheetvalue">
<td align="left" width="85%">Blue</td>
<td align="left" width="15%">
<input type="checkbox" name="cust[4].add" value="on">
</td>
</tr>
<tr class="spreadsheetvalue">
<td align="left" width="85%">Purpler</td>
<td align="left" width="15%">
<input type="checkbox" name="cust[5].add" value="on">
</td>
</tr>
</table>
 
C

claire.williams

Hello,

Thanks for pointing me in the right direction. My problem was that I
had not implemented a

reset (ActionMapping mapping, HttpServletRequest request)

method. So for those who know Struts, I had to change my DynaActionForm
and create a normal Action Form which implemented a reset() method. The
reset method looped through the array, setting the boolean
(representing the checkbox) to false.

The reset() method is automatically called before my preload action to
prepolulate values (so only reset if the array isn't null, otherwise I
got a NullPointerException) and then again once the form is submitted
(the crucial bit, initialising checkboxes back to false and then
populating with the selected form values).

Many Thanks, Claire
 
W

Wendy Smoak

So for those who know Struts, I had to change my DynaActionForm
and create a normal Action Form which implemented a reset() method.

DynaActionForms can have reset methods, too. :)

(All you needed to do was write a class that extends DynaActionForm,
implement reset in it, then change struts-config.xml to use your class
instead of using DAF directly.)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,017
Latest member
GreenAcreCBDGummiesReview

Latest Threads

Top