Вызов события изменения в браузере - PullRequest
0 голосов
/ 15 февраля 2019

На странице .cshtml,

<section>
    <label class="select">
        @if (itm.OutOfStock)
        {
            <select class="form-control" id="itm_SelectedQty" name="itm.SelectedQty" disabled="disabled">
                <option value=""></option>
            </select>
        }
        else
        {
            @Html.DropDownListFor(m => itm.SelectedQty, itm.QtyChoices, "", new { @class = "form-control" })
        }
        @Html.HiddenFor(m => itm.MenuItemId, new { @class = "itm_MenuItemId" })
        @Html.HiddenFor(m => itm.ItemAmount, new { @class = "itm_ItemAmount" })
        <i></i>
    </label>
</section>

И при изменении вызывается следующий код jQuery:

 $('.form-control').change(function () {

    var selectedQty = this.value;

 }); 

Как я могу вызвать то же самое при изменении, когда кто-тонажимает кнопку возврата браузера?

1 Ответ

0 голосов
/ 15 февраля 2019

Вы не можете сказать, что кнопка "Назад" была нажата из запроса ...

Одним из решений является использование window.history

Другойопция заключается в добавлении переменной isDirty на вашу страницу.Эта переменная будет включена в ваш запрос, поэтому вы можете использовать ее, чтобы определить, не является ли страница грязной (т. Е. Нажата кнопка «Назад»):

Добавить скрытую переменную в форму:

/* I am using bootstrap, d-none would hide the input */
<input type="text" value="0" id="isDirty" class="d-none" />

Затем в вашем коде JavaScript (я использую jQuery) установите значение isDirty равным 1

$(document).ready(function ($) {
    var isDirty = $('#isDirty');

    if (isDirty.length) { //<-- is dirty is defined

        // if user click the back button, isDirty is 1, call your function here
        if (isDirty.val() === "1") {
            // call whatever function you want to run on back button click
        }
        else {
            isDirty.val("1");  // <-- set isDirty to 1
        }
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...