javascript - validacion - validar formulario jquery
verificar si los cambios se guardaron antes de descargar (2)
window.onbeforeunload = function () {
var changesSaved = confirm("You havent saved your changes. Are you sure you want to leave the page?");
if (changesSaved) {
return true;
} else {
return false;
}
Tengo el siguiente javaScript
EDIT: asignaciones incluidas para cahngesSaved
var changesSaved = true;
$(document).ready(function () {
$(".applyChanges").click(function (e) {
e.preventDefault();
var id = (this).id;
var dayofweek = document.getElementById("dayofweek" + id).value;
var hour = document.getElementById("hour" + id).value;
var duration = document.getElementById("duration" + id).value;
$.ajax({
url: ''@Url.Action("ApplyChanges")'',
type: ''POST'',
data: {
id: id,
dayofweek: dayofweek,
hour: hour,
duration: duration
},
success: function (data) {
$(''#Calendar'').fullCalendar(''refetchEvents'')
$(''#Calendar2'').fullCalendar(''refetchEvents'')
changesSaved = false;
}
});
});
});
window.onbeforeunload = function () {
if (changesSaved == true) {
return true;
} else {
return ("You havent saved your changes. Are you sure you want to leave the page?")
}
}
pero el mensaje se envía independientemente de los cambios que se hayan guardado.
Lo que realmente obtengo es lo siguiente:
o si changesSaved se establece en false, dice false en su lugar.
¿No puedo hacer esto?
<body onbeforeunload="return bye()">
function bye(){
if(changesSaved) {
return "You havent saved your changes."
}
}
Así es como lo hago.
o en JavaScript puro:
window.onbeforeunload = function() {
if (changesSaved) {
return "You haven''t saved your changes.";
}
};