Ah do you have a copy of the form, so I can see exactly what you're doing?

- jake

On Dec 18, 2007 7:29 PM, Jesse R. <[EMAIL PROTECTED]> wrote:

>
> The request is still failing.  Any other ideas?
>
> On Dec 18, 11:37 am, "Jake McGraw" <[EMAIL PROTECTED]> wrote:
> > The problem is that the form is actually submitting before you can get a
> > response, this is the nature of an asynchronous request (the first A in
> > AJAX). Perhaps you could bind the the submit to one of the callbacks:
> >
> > jQuery("#googleCheckout").submit(function() {
> >     var $form = jQuery(this);
> >     if (!$form.is(".okgo")) {
> >         jQuery.ajax({
> >             type: "POST",
> >             dataType: "json",
> >             url: "/json-checkout",
> >             error: function(){
> >                 // Do nothing, "okgo" not added
> >             },
> >             success: function(json){
> >                 jQuery("input:first").val(json.gec);
> >                 jQuery("input:eq(1)").val(json.ges);
> >                 // This will prevent the AJAX message from being sent
> again
> >                 $form.addClass("okgo");
> >                 // Successful AJAX message, re-submit, this time for
> real
> >                 $form.submit();
> >             }
> >         });
> >         return false;
> >     }
> >
> > });
> >
> > On Dec 18, 2007 11:27 AM, Jesse R. <[EMAIL PROTECTED]> wrote:
> >
> >
> >
> > > I have the following html code:
> >
> > > <form id="googleCheckout" action="https://sandbox.google.com/checkout/
> > > cws/v2/Merchant/747474/checkout" method="post">
> > > <input type="hidden" name="cart" value="somevalue" />
> > > <input type="hidden" name="signature" value="anothervalue" />
> > > <input type="image" name="Google Checkout" alt="Fast checkout through
> > > Google"
> > > src="https://sandbox.google.com/checkout/buttons/checkout.gif?
> >
> > >
> merchant_id=747474&amp;w=160&amp;h=43&amp;style=WHITE&amp;variant=TEXT&amp;loc=en_US
> > > "
> > > height="43" width="160" />
> > > </form>
> >
> > > I want to dynamically load those values with a json request
> > > immediately before the submit, but not any sooner.  I tried doing the
> > > following code:
> >
> > > jQuery("#googleCheckout").submit(function() {
> > >                         jQuery.ajax({
> > >                           type: "POST",
> > >                           dataType: "json",
> > >                           url: "/json-checkout",
> > >                           error: function(){return false;},
> > >                           success: function(json){
> > >                            jQuery("input:first").attr({
> > >                                        value: json.gec
> > >                                        });
> > >                                jQuery("input:eq(1)").attr({
> > >                                        value: json.ges
> > >                                        });
> > >                                return true;
> > >                        }
> > >                           });
> > >                         });
> >
> > > However, the ajax request fails according to Firebug and the submit
> > > contains the old data.  The requested URL is
> > >http://www.blueskyvineyard.com/json-checkout.
> > > Any suggestions would be greatly appreciated!
>

Reply via email to