2010-03-18 111 views
1

我已經使用JQuery編寫了一個級聯下拉列表。我寫的代碼作品;級聯列表發生更改時,會更新級聯列表。但是當我離開頁面並按下瀏覽器上的後退按鈕時,CASCADED下拉列表會丟失其值。這裏是我的代碼(改當類別列表填充產品列表):JQuery:當按下按鈕時,級聯下拉列表丟失值

<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> 

有什麼辦法讓導航離開該頁面時填充甚至產品列表?我對瀏覽器工作原理的理解是,即使在瀏覽時,它們仍然保持頁面狀態。

我知道我可以只是把代碼中

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

這將顯式調用平變化的方法,但這種具有撥打電話到該網站的缺點,而實際上我想要的網頁維持現有的州。

請幫忙!

回答

2

瀏覽器爲什麼要保持js操作導致的狀態。大多數瀏覽器不會。

您可以嘗試使用cookies library並保存選中的類別(如果有)。當用戶稍後返回頁面並且沒有清除cookie時,您可以從cookie中讀取數值並自動發出$.getJSON請求以「重新填充」產品列表

+0

謝謝。儘管我必須弄清楚實施情況,但這是我正在尋找的信息。由於瀏覽器(通常)不會保留JS操作導致的狀態,因此我將嘗試解決這個問題。 – 2010-03-19 15:29:19