I just did somthing similar for my "DirtyFormWarning" component.
You might try something like:
___________________________
submitOnce = { 

      submitting:false;

        interceptValidation:function(inv) {
        var valid = inv.proceed();
                if (!valid) this.submitting=false;
                return valid;           
        }
}

dojo.event.connect("around", tapestry.form.validation, "validateForm",
submitOnce, "interceptValidation");
______________________________


hth,
Marcus
 

> -----Original Message-----
> From: Geoff Callender [mailto:[EMAIL PROTECTED] 
> Sent: Tuesday, May 15, 2007 4:09 PM
> To: Tapestry users
> Subject: Re: 4.1 and "do it once" components
> 
> Thanks, Jesse, but I couldn't get it to work, possibly 
> because it's kind of self-referencing?
> 
> On 05/05/2007, at 2:01 AM, Jesse Kuhnert wrote:
> 
> > Sure ...I think you can generally do something like:
> >
> > -) Use
> > http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-
> > framework/src/js/tapestry/form/validation.js?view=markupas
> > a reference.
> >
> > -) Override tapestry.form.validation.validateForm(form, props) with 
> > something else ....Like maybe
> >
> > tapestry.form.validation.validateForm=function(form,props) {
> >        var passed = tapestry.form.validation.prototype.apply(this,
> > arguments);
> >
> >        // prevent submission
> >        return false;
> > }
> >
> > Something like that anyways.
> >
> > On 5/4/07, Geoff Callender <[EMAIL PROTECTED]> wrote:
> >>
> >> I've got this working in 4.0 but need some help getting it working 
> >> with 4.1.  It involves Tapestry's javascript.
> >>
> >> I have some "do it once" components, eg. SubmitOnce and 
> >> DirectLinkOnce; which address the problem of multiple 
> clicks (causing 
> >> duplicate submissions).  I've adapted them from the 
> tapestry-bayeaux 
> >> project and upgraded them to Tap 4.0.
> >>
> >> In javascript they check if a variable called "ongoingSubmit" is 
> >> true.  If not, they set it to true and do what Submit or 
> DirectLink 
> >> would normally do.  Otherwise they do nothing, ie. they ignore 
> >> multiple clicks.  That much works just fine in both 4.0 and 4.1.
> >>
> >> The tricky bit is when client validation detects an error and 
> >> therefore ongoingSubmit should be set to false.  In 4.0 I 
> handle this 
> >> by overriding Tapestry javascript in my own script:
> >>
> >>      Tapestry.default_invalid_field_handler = 
> function(event, field,
> >> message)
> >>         {
> >>           if (!event.abort && !field.disabled)
> >>           {
> >>             Tapestry.set_focus(field);
> >>             window.alert(message);
> >>
> >>             event.abort = true;
> >>             event.cancel_handlers = true;
> >>
> >>             ongoingSubmit = false;
> >>           }
> >>         }
> >>
> >> The only difference is one added line
> >>
> >>             ongoingSubmit = false;
> >>
> >> Q: In Tap 4.1, what should I do?  And is there a more elegant way 
> >> than copying and pasting the entire function as I've done?
> >>
> >> Geoff
> >>
> >>
> >>
> >
> >
> > --
> > Jesse Kuhnert
> > Tapestry/Dojo team member/developer
> >
> > Open source based consulting work centered around 
> > dojo/tapestry/tacos/hivemind. http://blog.opencomponentry.com
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to