You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Carlos Pita (JIRA)" <ji...@apache.org> on 2008/02/09 21:29:08 UTC

[jira] Commented: (WICKET-1332) AjaxFormChoiceComponentUpdatingBehavior just updates the group "grandchildren"

    [ https://issues.apache.org/jira/browse/WICKET-1332?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12567355#action_12567355 ] 

Carlos Pita commented on WICKET-1332:
-------------------------------------

Here is a fix I'm using meanwhile, using proptotype:

function attachChoiceHandlers(markupid, callbackscript) {
 $(markupid).descendants().each(function(element) {
   if (element && element.tagName) {
     if (element.tagName.toLowerCase() == 'input') {
       Wicket.Event.add(element, 'click', callbackscript);     }
   }
 });
}

> AjaxFormChoiceComponentUpdatingBehavior just updates the group "grandchildren"
> ------------------------------------------------------------------------------
>
>                 Key: WICKET-1332
>                 URL: https://issues.apache.org/jira/browse/WICKET-1332
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.3.1
>            Reporter: Carlos Pita
>
> Up to 1.3.0, there was a bug in that AjaxFormChoiceComponentUpdatingBehavior updated just the group's direct children. Now it generates the header script quoted below, that iterates over the direct children and then over the children of these, triggering the event for the input grandchildren only. So the situation is even worse. I think that attachChoiceHandlers should descend recursively and search for input elements along all the group descendants, not just one arbitrarily chosen level.
> function attachChoiceHandlers(markupid, callbackscript) {
>  var choiceElementGroup = document.getElementById(markupid);
>  for( var x = 0; x < choiceElementGroup.childNodes.length; x++ ) {
>    var choiceElementList = choiceElementGroup.childNodes[x];   for( var y = 0; y < choiceElementList.childNodes.length; y++ ) {
>      if (choiceElementList.childNodes[y] && choiceElementList.childNodes[y].tagName) {
>        var tag = choiceElementList.childNodes[y].tagName.toLowerCase();
>        if (tag == 'input') {
>          Wicket.Event.add(choiceElementList.childNodes[y],'click', callbackscript);       }
>      }
>    }
>  }
> }

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