JQuery: каскадный выпадающий список теряет значения при нажатии кнопки назад - PullRequest
1 голос
/ 18 марта 2010

Я написал каскадный выпадающий список, используя JQuery. Код, который я написал, работает; каскадный список при изменении обновляет каскадный список. НО, когда я ухожу со страницы и затем нажимаю кнопку возврата в браузере, раскрывающийся список CASCADED теряет свои значения. Вот мой код (список категорий заполняет список продуктов при изменении):

<select id="CategoryList" onchange="CategoryList_OnChange()">
    <option value="" selected="selected"></option>
    <option value="1" selected="selected">Food</option>
    <option value="2" selected="selected">Toys</option>
    <option value="3" selected="selected">Books</option>
</select>

<select id="ProductList"></select>

<script src="../../Scripts/jquery-1.3.2.min.js" type="text/javascript"></script>

<script type="text/javascript">
    function CategoryList_OnChange() {
        var selected = $('#CategoryList').val();
        if (selected != null && selected != '') {
            $.getJSON('SelectList/ProductList/' + selected, function(selectList) {
                $('#ProductList option').remove();
                $.each(selectList, function(index, value) {
                    $('#ProductList').append("<option value='" + value.Value + "'>" + value.Text + "</option>");
                });
            });
        }        
    }
</script>

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

Я знаю, что могу просто вставить код в

$(document).ready(function() { ... });

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

Пожалуйста, помогите!

1 Ответ

2 голосов
/ 18 марта 2010

Почему браузер должен сохранять состояние, возникшее в результате манипуляций с js. Большинство браузеров не будут.

Вы можете попробовать использовать библиотеку куки и сохранить какую (если есть) категорию была выбрана. Когда пользователь позже вернется на страницу и тем временем не очистит файлы cookie, вы сможете прочитать значение из файла cookie и автоматически выполнить запрос $.getJSON для «пополнения» списка продуктов

...