#javascript #jsp
#javascript #jsp
Вопрос:
На данный момент у меня есть этот крошечный скрипт, который проверяет, внесены ли какие-либо изменения в форму. Если есть изменения, то я устанавливаю флаг на ‘Y’. Я вызываю эту функцию в onBeforeunload=»changeConfirm()» местах в теге body. Я знаю, что не могу помешать пользователю закрыть окно, но как мне заставить этот сценарий работать, когда он внес изменения -> решил закрыть окно -> Скрипт предупредил его -> Пользователь нажимает отмена (теперь мне нужно вернуть его на экран вместо закрытия браузера.
<script type="text/javascript">
var Flag= "";
function changeConfirm(){
if(Flag == 'Y')
{
var confirmStatus = confirm('Changes made. Dont want to save?');
}
else {
alert("No changes were made " Flag);
}
}
</script>
Комментарии:
1. Когда я пытаюсь это сделать, кнопкаотправки запрашивает пользователя «Внесены изменения …» Как вы обходите это поведение?
Ответ №1:
Попробуйте это :
function confirmChanges() {
if(Flag == 'Y')
{
if(confirm('Changes made. Dont want to save?')){
return false;
}else{
return true;
}
}
else {
alert("No changes were made " Flag);
}
}
Комментарии:
1. Привет, никсвп.. Спасибо за решение. один вопрос.. должен ли я поместить эту функцию в тело сейчас?
2. @t0mcat — да, вы можете, но вы должны поместить окружающий
script
тег и лучше вhead
.3. @t0mcat — поместите функцию в
head
и выполните вызов функцииonbeforeunload
события вашегоbody
4. Извините, что получилось. Спасибо 🙂 Собираюсь опубликовать новый вопрос с изменениями 🙂
Ответ №2:
Это должно быть так:
window.onbeforeunload = function() {
if ( Flag == 'Y' ) {
return "Changes made. Don't want to save?";
}
}
Комментарии:
1. Привет, Джед, как мне вызвать эту функцию? Из тега body? или просто сохраните его внутри тега <script> на странице и не нужно вызывать из тела
2. Да, просто продолжайте
<script>
.3. Когда я пытаюсь это сделать, кнопкаотправки запрашивает пользователя «Внесены изменения …» Как вы обходите это поведение?