After further investigation, my problem is with the
AjaxFormChoiceComponentUpdatingBehavior. After adding the radio group to the
target in the behavior's onUpdate(), it works.

I have my radio's styled with some fancy jQuery button looks, so I was
unable to see that the actual radio remained unselected after clicking it
when using the Ajax behavior. But adding the group to the target fixes that.

myRadioGroup.add(new AjaxFormChoiceComponentUpdatingBehavior()
{
@Override
protected void onUpdate(AjaxRequestTarget target)
{
target.addComponent(myRadioGroup);
                //whatever else....
}
});

Is this necessary or is this just working by coincidence?

On a side note, the javadoc for AjaxFormChoiceComponentUpdatingBehavior
says: (wicket 1.4.16)

> In order to be supported by this behavior the group components must output
> children with markup id in format of 'groupId-childId'


Does this just mean this, or something more? It seems to work even if the
structure is not formatted this way....

<div wicket:id="myGroup">
   <input type="radio" wicket:id="myGroup-radio1" />
   <input type="radio" wicket:id="myGroup-radio2" />
   <input type="radio" wicket:id="myGroup-radio3" />
</div>

On Sun, Jun 19, 2011 at 7:17 AM, Sven Meier <[email protected]> wrote:

> Hi Matt,
>
> it could be a tag open/close issue which leads IE to put your radio tags
> outside of the form.
> I'd suggest to check your markup, i.e. look out for non-closed tags.
>
> Hope this helps
>
> Sven
>
>
> On 06/18/2011 11:04 PM, Matt Schmidt wrote:
>
>> I have a form that is working correctly in FireFox but not IE. This
>> puzzled
>> is quite puzzling to me since it is server side functionality.
>>
>> Here's a much simplified version of what I've got:
>>
>> <!-- MyPage.html -->
>> <form wicket:id="form">
>>    <!-- some other form fields here, text areas, etc. that submit fine in
>> IE
>> and FF -->
>>    <div wicket:id="**myRadioGroupComponent1"/>
>>    <div wicket:id="**myRadioGroupComponent2"/>
>>    <div wicket:id="**myRadioGroupComponent3"/>
>>    <input type="submit" value="Save" wicket:id="saveButton" />
>> </form>
>>
>> <!-- MyRadioGroupComponent.html -->
>> <div wicket:id="radioGroup">
>>    <input type="radio" wicket:id="radio1" />
>>    <label>Radio 1</label>
>>    <input type="radio" wicket:id="radio2" />
>>    <label>Radio 2</label>
>>    <input type="radio" wicket:id="radio3" />
>>    <label>Radio 3</label>
>> </div>
>>
>> The RadioGroup's also have an AjaxFormChoiceComponentUpdatin**gBehavior
>> on it,
>> and the submit button is an IndicatingAjaxButton.
>>
>> When I submit the form in FF, everything works fine. When I submit it in
>> IE,
>> my form's model object has null values for each of the
>> "myRadioGroupComponent" properties. I stepped through the code and found
>> that convertedInput is getting set to null during the form's validate(),
>> because the radio group's value is not in the request
>> (FormComponent.**getInputAsArray()). So it seems to me that IE is not
>> submitting the form correctly, or that I have invalid HTML that I cannot
>> identify.
>>
>> I'm pretty stumped on this one. I can show some of my java if needed, but
>> the problem doesn't seem to be on that end to me. Any help is appreciated!
>>
>> Thanks,
>> Matt
>>
>>
>
> ------------------------------**------------------------------**---------
> To unsubscribe, e-mail: 
> users-unsubscribe@wicket.**apache.org<[email protected]>
> For additional commands, e-mail: [email protected]
>
>

Reply via email to