2011-12-07 60 views
0

我有兩個跨度在從選擇菜單中選擇各自的選項時顯示或隱藏。默認情況下,CSS中的兩個跨度都設置爲display: none。我希望在頁面重新加載之後保持任何當前可見的跨度的可見性(例如,在出現驗證錯誤的情況下)。如何在頁面重新加載後保持select-menu-toggle div的狀態?

我用一個複選框做了這個,很容易,但我不能用選擇菜單弄清楚它。

// Toggles the div based on selected option 
$(function() { 
    $('#maintenanceIntervalId').change(function() { 
     var value = $('#maintenanceIntervalId option:selected').val() 

     switch(value) { 
      case "2": { 
       $("#weekly-maintenance-on").show(); 
       $("#monthly-maintenance-on").hide(); 
       break; 
      } 
      case "3": { 
       $("#monthly-maintenance-on").show(); 
       $("#weekly-maintenance-on").hide(); 
       break; 
      } 
      case "1": { 
       $("#weekly-maintenance-on").hide(); 
       $("#monthly-maintenance-on").hide(); 
       break; 
      } 
     } 
    }); 
}); 

上述工作如預期。但爲了得到當前可見的跨度留頁面重載後可見,我搬到switch語句到它自己的功能toggleMaintenanceDiv()並添加以下行:

toggleMaintenanceDiv($('#maintenanceIntervalId option:selected'))

這是不行的,但是。

HTML:

<select id="maintenanceIntervalId"> 
    <option value="1">Day</option> 
    <option value="2">Week</option> 
    <option value="3">Month</option> 
</select> 

<span id="weekly-maintenance-on">Stuff one</span> 
<span id="monthly-maintenance-on">Stuff two</span> 

回答

0

腳本與頁面加載每次重裝,javascript中的所有變量或狀態會被重新加載後會丟失。我認爲您可以將可見跨度ID存儲在Cookie中,並且每次頁面加載時,都會首先檢查cookie並將相應的跨度設置爲可見。

+0

在這種情況下,我不確定cookie是否必要。看看這個:http://stackoverflow.com/questions/8406336/how-do-you-maintain-the-state-of-a-checkbox-toggled-div-after-page-reload – Mohamad

相關問題