By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
434,573 Members | 907 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 434,573 IT Pros & Developers. It's quick & easy.

Warn to Save before leaving a page...

P: n/a
I've got a form that's nested in a larger application. I need to
program it so that the user is warned to save upon clicking on any
exit point in the application.

So, if they click on any of the nav buttons in the header/nav bar,
they need to get an alert:

"Would you like to continue without saving your changes?"
_Yes_ _No_

It would be a big pain to retrofit the application's nav
buttons/framework for just these forms, so I'm looking for a solution
that doesn't require editing the source code of the application's
existing navigation.

What are my options?

BTW, this application is for IE 5+ only, FWIW.

Thanks,
Jamie
Jul 20 '05 #1
Share this Question
Share on Google+
5 Replies


P: n/a
Jamie Jackson wrote:
So, if they click on any of the nav buttons in the header/nav bar,
they need to get an alert:

"Would you like to continue without saving your changes?"
_Yes_ _No_


<body onunload="if (confirm('Save changes?')) { doSomethingHere(); }">

Jul 20 '05 #2

P: n/a
On Fri, 10 Oct 2003 00:31:24 +0100, bengee
<po********@localhost.localdomain> wrote:
Jamie Jackson wrote:
So, if they click on any of the nav buttons in the header/nav bar,
they need to get an alert:

"Would you like to continue without saving your changes?"
_Yes_ _No_


<body onunload="if (confirm('Save changes?')) { doSomethingHere(); }">


Great! It still requires me to modify the application framework, but
at least it's only in one place (good news). :)

Thanks very much,
Jamie

Jul 20 '05 #3

P: n/a
On Fri, 10 Oct 2003 09:53:11 -0400, Jamie Jackson
<wa***************@bigfoot.com> wrote:
On Fri, 10 Oct 2003 00:31:24 +0100, bengee
<po********@localhost.localdomain> wrote:
Jamie Jackson wrote:
So, if they click on any of the nav buttons in the header/nav bar,
they need to get an alert:

"Would you like to continue without saving your changes?"
_Yes_ _No_


<body onunload="if (confirm('Save changes?')) { doSomethingHere(); }">


Great! It still requires me to modify the application framework, but
at least it's only in one place (good news). :)


I think this isn't going to work. AFAIK, by the time you get the
confirmation, you've already unloaded the page, and are halfway to the
next. Is there a way to prevent the unLoad from continuing, when the
user confirms in the negative?

I'm racking my brain trying to figure out how to do this without
retrofitting all of the nav links.

I think I may be on to something with the following, would someone
please let me know if I'm going in the right direction, or if there's
an easier way, or if there's a solution to the onUnload issue above?

function changeLinks(d) {
// this picks up all the links but those in my popup nav :-( ...it's
a start, though
for (var i=0; i < d.links.length; i++) {
// maybe save each link's old location into an array here, for
later use

// now, rewrite each link to a confirm. later, code the following
to load a new window with the old url?
d.links[i].href = "javascript: confirm('Exit before saving?')";
}
}
changeLinks(document);

Thanks,
Jamie
Jul 20 '05 #4

P: n/a
Jamie Jackson wrote:
I think this isn't going to work. AFAIK, by the time you get the
confirmation, you've already unloaded the page, and are halfway to the
next. Is there a way to prevent the unLoad from continuing, when the
user confirms in the negative?
I think you're right there... the page is already on it's way to
"unloading" and i don't think that can be stopped.
I'm racking my brain trying to figure out how to do this without
retrofitting all of the nav links.

I think I may be on to something with the following, would someone
please let me know if I'm going in the right direction, or if there's
an easier way, or if there's a solution to the onUnload issue above?

function changeLinks(d) {
// this picks up all the links but those in my popup nav :-( ...it's
a start, though
for (var i=0; i < d.links.length; i++) {
// maybe save each link's old location into an array here, for
later use

// now, rewrite each link to a confirm. later, code the following
to load a new window with the old url?
d.links[i].href = "javascript: confirm('Exit before saving?')";
}
}
changeLinks(document);


This looks like a good way of doing it. Change the href's to something
like :-

d.links[i].href = "javascript: if (confirm('Exit?')) {
document.location.href = 'somefile.htm'; } else { void(0); }";

Hope this works!!

Ben

Jul 20 '05 #5

P: n/a
Thanks again Ben,

Here's what I came up with:

<script language="JavaScript1.2">
function promptBeforeExiting (oldLink) {
if (confirm("Exit without saving?")) {
window.location = oldLink;
}
}

function switchLinks(d) {
var oldLink="";
for (var i=0; i < d.links.length; i++) {
oldLink = d.links[i].href;
d.links[i].href = "javascript: promptBeforeExiting('"+ oldLink + "')";
}
}
switchLinks(document);
</script>

It's working very well for <a href>s, and now I've got to figure out
how to disable my popup links as well...

Thanks,
Jamie
Jul 20 '05 #6

This discussion thread is closed

Replies have been disabled for this discussion.