JavaScript редактируя подсказку

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

Я хочу только показать это, когда пользователи отредактировали некоторое значение на той странице, и он не сохраняет изменения затем, подсказка попросит, чтобы "Вы хотели сохранить изменения?". Иначе, если он сохранил затем подсказку, не появляется.

При редактировании подсказки, подобной MICROSOFT WORD / EXCEL, чтобы сообщить Вам, что Вы вносите изменения и, Вы хотите продолжить двигаться.

дайте решение быстро?

1
задан Rob Stevenson-Leggett 28 July 2010 в 08:27
поделиться

3 ответа

Скопировано из моего ответа на первую копию этого вопроса: Запрос на редактирование в javascript

Вам нужно будет использовать событие change на всех ваших входы для обнаружения любых изменений, внесенных пользователем. Это событие не всплывает, поэтому вам нужно прикрепить его к каждому входу индивидуально. Затем вам нужно будет использовать событие beforeunload в объекте window , чтобы запросить пользователя.

<script type="text/javascript">
    var anythingEdited = false;

    function inputChanged() {
        anythingEdited = true;
    }

    window.onbeforeunload = function(evt) {
        if (anythingEdited) {
            evt = evt || window.event;
            evt.returnValue = "You have edited something. If you click OK, your changes will be lost.";
        }
    };
</script>

First name: <input type="text" id="firstName" name="firstName" onchange="inputChanged();">
1
ответ дан 2 September 2019 в 22:39
поделиться

Вы можете установить прослушиватель для любых изменений в полях формы. При изменении чего-либо вы можете установить грязный флаг. После сохранения вы можете сбросить то же самое.

Однако обратитесь к jQuery. В нем может быть что-то встроенное.

0
ответ дан 2 September 2019 в 22:39
поделиться

Вы можете использовать onbeforeunload : https://developer.mozilla.org/en/DOM/window.onbeforeunload

Однако поддержка ограничена, поскольку она основана на изобретении Microsoft и других просто скопировал это. Невозможно делать то, что вы хотите, в браузерах, которые не поддерживают это событие.

1
ответ дан 2 September 2019 в 22:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: