Do you have a live example page?

- jake

On Tue, Jun 24, 2008 at 1:07 PM, [EMAIL PROTECTED]
<[EMAIL PROTECTED]> wrote:
>
> Hi,
>
> First off, the caveat, I'm a noob. However, I have a small piece of
> code that is causing some odd behaviour in FF 2 and 3 but not in other
> browsers (IE6 & 7, Safari 3 are the ones I've tested).
>
> The code inspects a text input and on each keyup issues an ajax
> request. The target PHP file checks whether the input matches a string
> and if so the jQuery code then disables the text input field, scans
> the page for PayPal add to basket buttons (normally 7 off them) and
> adjusts each form hidden field amount and button text by 2 pounds (the
> forms are not encrypted).
>
> This all seems to work very well on every browser I've got immediate
> access to but not FF 3 (Mac) or FF 2 (Win). On these browsers the
> changes to the hidden fields persist across page reloads so if I input
> the correct code then refresh the page and input the correct code
> again then the form fields and buttons will be adjusted by 4 pounds
> and not just two. This behaviour will continue as many times as I can
> be bothered to refresh and reenter the correct code. What's
> particularly odd is the button values are reset to the originals after
> each page refresh, just not the hidden fields amounts.
>
> I've no doubt that this is down to me a) not understanding how the DOM
> really works and b) not really understanding how jQuery works and c)
> writing crappy code. However, I'd really appreciate some guidance and
> explanation. My code is pasted below.
>
> Cheers
>
> Greg
>
> $(document).ready(function(){
>                // reset the discount input
>                $('#discountCode').attr('disabled', '').val('');
>
>                $('#discountCode').keyup(function() {
>                        var inputValue = $('#discountCode').val();
>
>                        $.get('/assets/data/discount.php', {code: inputValue},
> function(data) {
>                                if (data == 'true')
>                                {
>                                        // if code is correct we disable the 
> input
>                                        $('#discountCode').attr('disabled', 
> 'disabled');
>
>                                        // and show the tick mark
>                                        $('#correctCode').css('display', 
> 'inline');
>
>                                        // get each hidden input amount
>                                        $("#main form 
> input[name='amount']").each(function() {
>                                                var originalCost = 
> $(this).val();
>                                                // apply the discount
>                                                var discountCost = 
> originalCost - 2;
>                                                // set the discount in the 
> hidden amount fields
>                                                $(this).val(discountCost);
>                                                // Change the button text
>                                                var newButtonText = 
> '£'+discountCost+' Add to basket';
>                                                
> $(this).parent().next('.paypal_button').val(newButtonText);
>                                                // reset variables
>                                                originalCost = 0;
>                                                discountCost = 0;
>                                        });
>                                };
>                        });
>                });
>         });
>

Reply via email to