zick: A ver, no sea que yo te haya entendido mal...
Lo que quieres hacer es que, cuando una página se descargue de memoria, aparezca un mensaje que advierta de que los cambios realizados no se guardarán. Y tú problema es que este mensaje, además de aparecer cuando se cierra la ventana o se carga otro documento, también lo hace cuando un formulario se está enviando y no debería de suceder ¿Es correcto?
Si es así, lo que te decía es que el problema viene derivado de que al enviar el formulario, el documento se carga de nuevo, y de ahí que dispare el evento beforeUnload.
Pues bien, si quieres evitarlo, y basándome en tu código, sería algo así:
Código:
<SCRIPT LANGUAGE="JavaScript1.2" TYPE="text/javascript">
<!--
var enviando = false;
window.onbeforeunload = unloadMess;
function unloadMess () {
if (! enviando) {
mess = "Los cambios realizados no se guardarán"
return mess;
}
}
form.onsubmit = onSubmit;
function onSubmit () {
enviando = true;
}
//-->
</SCRIPT>
Eso sí, ten en cuenta que "form" debe de ser tu formulario, no "form" tal cual.