Robert Cailliau
Robert Cailliau

Reputation: 11

automatically post form when leaving page

This is a plain javascript question.

I have a page C in which sits a textarea T. T's content gets added to by clicks on various buttons on C (essentially T accumulates the list of times at which the buttons were clicked).

There is also a button to submit the contents of T by a post request to a server (T being surrounded by a form element).

When the user forgets to click the submit button and closes the page's window, I want the posting of T's contents to happen anyway, just as if the user had clicked the submit button before closing the window.

I know I can intercept the page closing and prompt the user to do the submit, but that is NOT what I want.

It seems to be impossible to submit the form containing T from inside a function that is called by onbeforeunload.

Thanks for any tip.

Upvotes: 1

Views: 669

Answers (2)

Denys Séguret
Denys Séguret

Reputation: 382514

This is simply not possible : this is a security measure designed to ensure a site can't prevent a user instantly leaving a page if he wants to.

The best you can do is posting your form using ajax each time a field is changed.

Upvotes: 4

ajtrichards
ajtrichards

Reputation: 30530

I've used this code in part of my application - it doesn't capture any text though but you could give it a try.

window.onbeforeunload = confirmExit;

function confirmExit(){

    data = $("#data").val();

    $.ajax({
        url: 'complete.php?data=' + data
    });

}

Upvotes: 0

Related Questions