django / javascript предупреждает пользователя перед тем, как покинуть страницу, если что-то написал и не нажал кнопку отправить - PullRequest
0 голосов
/ 23 января 2019

У меня есть следующая форма django:

 <form class="form-inline"   method = "post"  >           
    {% csrf_token %}
    {{ form.media }}
    {{ form.as_p }}
    <button type="submit" onclick="setFormSubmitting()">Submit</button>     
</form>

и следующий javascript

    var isDirty = function() { return false; }
    var formSubmitting = false;
    var setFormSubmitting = function() { formSubmitting = true; };

    window.onload = function() {
        window.addEventListener("beforeunload", function (e) {
            if (formSubmitting) {
                return undefined;
            }

            var confirmationMessage = 'It looks like you have been editing something. '
                                    + 'If you leave before saving, your changes will be lost.';

            (e || window.event).returnValue = confirmationMessage; //Gecko + IE
            return confirmationMessage; //Gecko + Webkit, Safari, Chrome etc.
        });
    };

Цель состоит в следующем: пользователь может оставить без предупреждения , если что-то не было написано в текстовой области (form.media), и отправка не была нажата (как пользователь что-то набрал и переместился в другая страница).

Моя борьба в части isDirty - как проверить, что что-то было написано в form.media.

Edit: Проблема с Javascript была решена на основе ответа CodeCaster (спасибо Шафикуру Рахману за указание)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...