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

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

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