what happens if you omit
Event.stop(event);
in you onClick function ?

On Tue, Oct 19, 2010 at 21:10, Dmitriy Vsekhvalnov
<dvsekhval...@gmail.com> wrote:
> Here you go. JS + Java.   Let me know if you find something in, which can
> cause such behavior :)
>
> ============ JS ============
> Tapestry.AjaxCheckbox = Class.create({
>
>    initialize: function(formId, clientId, selectAllMode, radioMode)
>    {
>        this.selectAllMode=selectAllMode;
>        this.radioMode=radioMode;
>        this.form = $(formId);
>        this.element = $(clientId);
>        //this.element.stopObserving("click",this.onClick);
>        this.element.observe("click",
> this.onClick.bindAsEventListener(this));
>    },
>
>    createHidden : function()
>    {
>        var hidden = new Element("input", { "type":"hidden",
>            "name": this.element.id + ":hidden",
>            "value": this.element.id});
>
>        this.element.insert({after:hidden});
>    },
>
>    onClick : function(event)
>    {
>        Event.stop(event);
>
>        if(this.radioMode=='true')
>        {
>            $$('input').each(function(e)
>            {
>              if(e.type=='checkbox')
>              {
>                  e.checked=0;
>              }
>             });
>
>            //set self
>            this.element.checked=1;
>        }
>        else if(this.selectAllMode=='true')
>        {
>            this.form.getInputs('checkbox').each(function(e)
>            {
>                e.checked=1;
>            });
>
>            //clean self
>            this.element.checked=0;
>        }
>
>
>        var onsubmit = this.form.onsubmit;
>        if (onsubmit == undefined || onsubmit.call(window.document, event))
>        {
>            this.createHidden();
>            this.form.submit();
>        }
>    }
> });
>
> Tapestry.Initializer.ajaxCheckbox = function(formId, clientId,
> selectAllMode, radioMode)
> {
>    new Tapestry.AjaxCheckbox(formId, clientId, selectAllMode, radioMode);
> }
> ===========================
>
> ======= Java ===========
> @IncludeJavaScriptLibrary("ajaxcheckbox.js")
> public class AjaxCheckbox extends AbstractField
> {
>   �...@parameter(required = false, autoconnect = false)
>    private boolean value;
>
>   �...@parameter(required = false)
>    private boolean selectAllMode;
>
>   �...@parameter(required = false)
>    private boolean radioMode;
>
>   �...@inject
>    private RenderSupport renderSupport;
>
>   �...@environmental
>    private FormSupport formSupport;
>
>   �...@inject
>    private ComponentResources resources;
>
>   �...@environmental
>    private ValidationTracker tracker;
>
>   �...@inject
>    private Request request;
>
>   �...@beginrender
>    void begin(MarkupWriter writer)
>    {
>        String asSubmitted = tracker.getInput(this);
>
>        boolean checked = asSubmitted != null ?
> Boolean.parseBoolean(asSubmitted) : value;
>
>        writer.element("input", "type", "checkbox",
>                       "name", getControlName(),
>                       "id", getClientId(),
>                       "checked", checked ? "checked" : null);
>
>        resources.renderInformalParameters(writer);
>
>        //decorateInsideField();
>    }
>
>   �...@afterrender
>    void after(MarkupWriter writer)
>    {
>        writer.end(); // input
>
>        renderSupport.addInit("ajaxCheckbox",
>                              formSupport.getClientId(),
>                              getClientId(),
>                              valueOf(selectAllMode),
>                              valueOf(radioMode));
>    }
>
>   �...@override
>    protected void processSubmission(String elementName)
>    {
>        String postedValue = request.getParameter(elementName);
>
>        // record as "true" or "false"
>
>        tracker.recordInput(this, Boolean.toString(postedValue != null));
>
>        value = postedValue != null;
>    }
>
> =======================
>
>
>
> On Tue, Oct 19, 2010 at 9:25 PM, Thiago H. de Paula Figueiredo <
> thiag...@gmail.com> wrote:
>
>> On Tue, 19 Oct 2010 14:10:00 -0200, Dmitriy Vsekhvalnov <
>> dvsekhval...@gmail.com> wrote:
>>
>>  Is it what AJAX stands for? :)
>>>
>>
>> Yes! :)
>>
>>
>>  i was thinking that ajax is to do things in background, while letting user
>>> see something immediately. And i don't think checkbox falls to area where it
>>> should get response from server to display new state, isn't it?
>>> anyway you can try it yourself and see that it is CHANGED but then
>>> restored back when sending form data.
>>>
>>
>> Please post your JavaScript code. It doesn't seem related to Tapestry.
>>
>> --
>> Thiago H. de Paula Figueiredo
>> Independent Java, Apache Tapestry 5 and Hibernate consultant, developer,
>> and instructor
>> Owner, Ars Machina Tecnologia da Informação Ltda.
>> http://www.arsmachina.com.br
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>
>>
>



-- 
Andreas Andreou - andy...@apache.org - http://blog.andyhot.gr
Tapestry PMC / Tacos developer
Open Source / JEE Consulting

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to