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

Johan Compagner updated WICKET-470:
-----------------------------------

    Attachment: AjaxFormChoiceComponentUpdatingBehavior.java

I already wrote such a thing, don't know if it does take all kinds of radio 
choices or checkbox choices
because  of this:

                asb.append("function attachChoiceHandlers(markupid, 
callbackscript) {\n");
                asb.append(" var choiceElement = 
document.getElementById(markupid);\n");
                asb.append(" for( var x = 0; x < 
choiceElement.childNodes.length; x++ ) {\n");
                asb.append("   if (choiceElement.childNodes[x] && 
choiceElement.childNodes[x].tagName) {\n");
                asb.append("     var tag = 
choiceElement.childNodes[x].tagName.toLowerCase();\n");
                asb.append("     if (tag == 'input') {\n");
                asb.append("       
Wicket.Event.add(choiceElement.childNodes[x],'click', callbackscript);");
                asb.append("     }\n");         
                asb.append("   }\n");
                asb.append(" }\n");
                asb.append("}\n");

I am not going deeper then just the child nodes of a radiochoice or group
But for the default CheckboxMultiplyChoice or RadioChoice it should work fine.
I am still thinking about integrating this into 
AjaxFormComponentUpdatingBehavior so that it checks for the type
and then does different things depending on this.



> 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
>         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