You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Johan Compagner (JIRA)" <ji...@apache.org> on 2007/04/18 11:27:15 UTC

[jira] Updated: (WICKET-470) AjaxFormComponentUpdatingBehavior won't work for RadioChoices

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