1

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状態を維持させたいのに、Webサイトを呼び出すという欠点があります。

助けてください!

4

1 に答える 1

2

ブラウザがjs操作の結果の状態を維持する必要があるのはなぜですか。ほとんどのブラウザはそうしません。

Cookieライブラリを使用して、選択したカテゴリ(存在する場合)を保存してみてください。ユーザーが後でページに戻り、その間にCookieをクリアしなかった場合は、Cookieから値を読み取り、$.getJSON製品リストを「補充」する要求を自動的に発行できます。

于 2010-03-18T12:04:10.810 に答える