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