You should be using the on function instead of bind, in jquery 1.7+
On Sep 17, 2012 5:41 AM, "Taha Siddiqi" <tawus.tapes...@gmail.com> wrote:

> Hi
>
> You are using tapestry-jquery and trying to access a prototype library
> method. Try bind instead of observe
>
> regards
> Taha
>
> On Sep 17, 2012, at 4:00 PM, ZKN __ wrote:
>
> >
> > Thank you!
> > I tried to implement this but not much success for now. I'm not really
> good at js and jQuery so perhaps I'm doing something wrong.
> > Here is my code
> > initialize: function(element)
> >
> >        {
> >
> >
> > var el = $(element);
> >
> >
> > var form = jQuery(el).closest("form");
> form.observe(Tapestry.FORM_VALIDATE_EVENT,
> >                               function()
> >                               {
> >                                       console.log("Hey, we're
> observing!");
> >
> > ...
> > I get the following error: Uncaught exception: TypeError: 'form.observe'
> is not a function
> >
> > I have to mention I'm on a bit older version of Tapestry: 5.1.05. There
> is no
> > Tapestry.FORM_VALIDATE_FIELDS_EVENT defined but there are
> > Tapestry.FORM_VALIDATE_EVENT and
> > Tapestry.FIELD_VALIDATE_EVENT
> > which I guess should do the same thing.
> >
> >
> >
> >
> >
> >
> > -------- Оригинално писмо --------
> >
> > От: Josh Canfield joshcanfi...@gmail.com
> >
> > Относно: Re: Confirm mixin with form validation errors
> >
> > До: Tapestry users
> >
> > Изпратено на: Петък, 2012, Септември 14 07:07:20 EEST
> >
> >
> > I don't think this addresses the problem though, right?
> >
> >
> >
> > If client-side form validation fails you still are in a state where you
> >
> > can't click the submit button again after fixing the error.
> >
> >
> >
> > Tapestry doesn't have an event for "validation failed", and I don't know
> of
> >
> > an approved way to workaround that. But! What you can do is add an
> observer
> >
> > for Tapestry.FORM_VALIDATE_FIELDS_EVENT and set a timeout (1/4 of a
> >
> > second?) to re-enable the field if you don't get a
> >
> > Tapestry.FORM_PREPARE_FOR_SUBMIT_EVENT before the timeout.
> >
> >
> >
> > Here is a prototype based on Geoff's example from jumpstart. This was
> >
> > created for submit buttons, you'd have to adjust for links (find the
> >
> > form...)
> >
> >
> >
> > ClickOnce = Class.create( {
> >
> >
> >
> >    initialize: function(elementId) {
> >
> >        var el = $(elementId);
> >
> >        el.clickOnce = this;
> >
> >        if ( el['form'] ) {
> >
> >            el.form.observe(Tapestry.FORM_VALIDATE_FIELDS_EVENT,
> function()
> >
> > {
> >
> >                console.log("Hey, we're observing!");
> >
> >                el.clickOnce.clickOnceTimeout =
> >
> > window.setTimeout(function(){
> >
> >                    console.log("Let them click again")
> >
> >                    el.clickOnce.alreadyClickedOnce = false;
> >
> >                }, 250)
> >
> >            });
> >
> >
> >
> >            el.form.observe(Tapestry.FORM_PREPARE_FOR_SUBMIT_EVENT,
> >
> > function() {
> >
> >                window.clearTimeout(el.clickOnce.clickOnceTimeout);
> >
> >            });
> >
> >        }
> >
> >        this.alreadyClickedOnce = false;
> >
> >
> >
> >        Event.observe(el, 'click',
> >
> > this.doClickOnce.bindAsEventListener(this));
> >
> >    },
> >
> >
> >
> >    doClickOnce: function(e) {
> >
> >        var element = Event.element(event);
> >
> >        console.log("Clicked");
> >
> >        if (element.clickOnce.alreadyClickedOnce) {
> >
> >            console.log("and cancelled");
> >
> >            e.stop();
> >
> >        }
> >
> >        element.clickOnce.alreadyClickedOnce = true;
> >
> >    }
> >
> >
> >
> > } );
> >
> >
> >
> >
> >
> > // Extend the Tapestry.Initializer with a static method that
> instantiates a
> >
> > ClickOnce.
> >
> >
> >
> > Tapestry.Initializer.clickOnce = function(spec) {
> >
> >    new ClickOnce(spec.elementId);
> >
> > };
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>

Reply via email to