sorry, correction to my code posted above.
the cancel funciton has to have unbind() or it submits the form
anyway, but even with the unbind, it then submits the form twice the
next time the form is called.
 cancel function above should read


pedalpete
View profile
         More options May 8, 11:53 am
From: pedalpete <[EMAIL PROTECTED]>
Date: Thu, 8 May 2008 11:53:31 -0700 (PDT)
Local: Thurs, May 8 2008 11:53 am
Subject: unbinding, livequery or other way to cancel an ajax retrieved
form or remove form from DOM?
Reply | Reply to author | Forward | Print | Individual message | Show
original | Remove | Report this message | Find messages by this author
Hi All,

I'm building a site with lots of ajax retrieved forms, and have
finally realized why I'm seeing tons of errors (I think).

On the site, if you select an input which gets an ajax form, I add a
'cancel' button to the form which will hide the form if the user
decides not to take that action.

However, if the user then decides to go back and fill out that form
later, when they submit the form, it submits twice once without any
parameters, but that may be of no consequence if it only submits for
the form the user intends to submit.

wherever I retrieve the form initially, i use .livequery so the dom is
always up to date.

[code]
$(".addReq").livequery('click', function(event) {
                var id = this.id;
                var formID = "#addReqForm"
                                        $
(formID).fadeIn("slow").html(loading);
                        $.ajax({
                                type: "POST",
                                url: "processes/addRequests.php",
                                data: id,
                                success: function(response){
                                        $(formID).html(response);
                                        cancelForm(formID);
                                        addReqSubmit();
                                        }
                        });
        });
[/code]

the 'cancelForm' function looks like this

[code]
        function cancelForm(formID){
                        $(formID).append('<input type="submit"
class="cancel"
value="cancel">');
                        $(".cancel").click( function(){
                                $(formID).fadeOut("slow");
                                $(this).unbind();
                                });
                        };
[/code]

On May 8, 11:53 am, pedalpete <[EMAIL PROTECTED]> wrote:
> Hi All,
>
> I'm building a site with lots of ajax retrieved forms, and have
> finally realized why I'm seeing tons of errors (I think).
>
> On the site, if you select an input which gets an ajax form, I add a
> 'cancel' button to the form which will hide the form if the user
> decides not to take that action.
>
> However, if the user then decides to go back and fill out that form
> later, when they submit the form, it submits twice once without any
> parameters, but that may be of no consequence if it only submits for
> the form the user intends to submit.
>
> wherever I retrieve the form initially, i use .livequery so the dom is
> always up to date.
>
> [code]
> $(".addReq").livequery('click', function(event) {
>                 var id = this.id;
>                 var formID = "#addReqForm"
>                                         
> $(formID).fadeIn("slow").html(loading);
>                         $.ajax({
>                                 type: "POST",
>                                 url: "processes/addRequests.php",
>                                 data: id,
>                                 success: function(response){
>                                         $(formID).html(response);
>                                         cancelForm(formID);
>                                         addReqSubmit();
>                                         }
>                         });
>         });
> [/code]
>
> the 'cancelForm' function looks like this
>
> [code]
>         function cancelForm(formID){
>                         $(formID).append('<input type="submit" class="cancel"
> value="cancel">');
>                         $(".cancel").click( function(){
>                                 $(formID).fadeOut("slow");
>                                 });
>                         };
> [/code]
>
> I have tried attaching the following actions to the cancel.click
> action
> 1) .livequery
> 2) $(this)unbind()
> 3) $(this).children().remove()
> 4) return false;
>
> but so far no luck. Anybody have a simple way to remove a form from a
> page which actually results in it's complete removal?

Reply via email to