[ 
https://issues.apache.org/jira/browse/WICKET-470?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12489686
 ] 

Matej Knopp commented on WICKET-470:
------------------------------------

I think this approach is wrong. Sorry :)

What we should do have method Wicket.Form.serializeElementOrChildren, which 
would act like this:
if the give element is a form element, return 
Wicket.Form.serializeElement(element);
otherwise traverse children recursively and serialize them.

This should work for both RadioChoice and CheckboxMultiplyChoice without the 
invasive javascript you suggested. Unless I'm wrong of course :)  

> AjaxFormComponentUpdatingBehavior won't work for RadioChoices
> -------------------------------------------------------------
>
>                 Key: WICKET-470
>                 URL: https://issues.apache.org/jira/browse/WICKET-470
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.3
>            Reporter: Carlos Pita
>         Assigned To: Matej Knopp
>         Attachments: AjaxFormChoiceComponentUpdatingBehavior.java
>
>
> Below is the generated html and js for a simple RadioChoice("sex", 
> Arrays.asList("M", "F")) with an attached behavior. Notice how 
> wicketSerialize will take the else branch for span elements, so it will 
> always return "". Maybe the behavior should be patched, maybe the js, maybe 
> there is a need for another behavior, I don't know.
> <span wicket:id="sex" id="sex5" onblur="var
> wcall=wicketAjaxPost('test?wicket:interface=:2:testForm:sex::IBehaviorListener:0',
> wicketSerialize(document.getElementById('sex5')), function() { },
> function() { });">
> <input name="sex" type="radio" value="0" id="sex_0"/><label
> for="sex_0">M</label><br />
> <input name="sex" type="radio" value="1" id="sex_1"/><label
> for="sex_1">F</label><br />
> </span>
> wicketSerialize = Wicket.Form.serializeElement;
> Wicket.Form.serializeElement = function(e) {
> var tag = e.tagName.toLowerCase();
> if (tag == "select") {
> return Wicket.Form.serializeSelect(e);
> } else if (tag == "input" || tag == "textarea") {
> return Wicket.Form.serializeInput(e);
> } else {
> return "";

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to