Изменение глобальной переменной из <a href> - PullRequest
0 голосов
/ 24 мая 2010

Я создал некоторый код для всплывающего диалогового окна подтверждения, если пользователь пытается покинуть страницу, не сохраняя свои изменения. Однако я не хочу, чтобы диалоговое окно подтверждения появлялось, если пользователь нажал кнопку «Сохранить».

У меня есть код в верхней части моего файла, который выглядит следующим образом:

var confirmClose = false;
window.onbeforeunload = function(evt) {
    if (confirmClose == true) {
        message = "There are unsaved changes on this page.  Are you sure you wish to leave?";
        if (typeof evt == 'undefined') {
            evt = window.event;
        }
        if (evt) {
            evt.returnValue = message;
        }
        return message;
     }
}

Далее на странице есть ссылка, которая выглядит следующим образом:

<a href="javascript:confirmClose=false;$('#stockForm').submit()" title="Save" class="button positive" id="stockFormSubmit">Save</a>

Однако, похоже, это не работает - похоже, оно не меняет значение confirmClose, и изменение его на window.confirmClose тоже не помогло.

Что я здесь не так делаю?

1 Ответ

1 голос
/ 24 мая 2010

Это будет работать:

<script type="text/javascript">
var confirmClose = false;
window.onbeforeunload = function(evt) {
    evt = evt || window.event;
    if (confirmClose === true) {
        message = "There are unsaved changes on this page.  Are you sure you wish to leave?";
       if (evt) {
           evt.returnValue = message;
       }
       return message;
   }
};
function saveAction() {
    confirmClose=false;
    $('#stockForm').submit();
    return false;
}

</script>
<a href="#" title="Save" class="button positive" id="stockFormSubmit">Save</a>

<script type="text/javascript">
   document.getElementById( 'stockFormSubmit' ).onclick = saveAction;
</script> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...