2012-05-04 53 views
1

我正在使用我的選擇下拉玩一些顯示/隱藏功能。下面是HTML的選擇,jquery保留所選值在選擇選項

<select id="sel1" size="1" name=""> 
    <option selected="selected" value="0">Select Here</option> 
    <option value="1">Option 1</option> 
    <option value="2">Option 2</option> 
</select> 

這裏是我的jQuery,

$(document).ready(function(){ 
    $("#sel1").change(fun); 
}); 


function fun(){ 
    var selected = $("#sel1 option:selected");  

    if(selected.val() == 1) { 
     $("#div1").slideDown("slow"); 
     $('#div2').slideUp("slow"); 
    } else if(selected.val() == 2) { 
     $("#div1").slideUp("slow"); 
     $('#div2').slideDown("slow"); 
    } else { 
     $("#div1").slideUp("slow"); 
     $('#div2').slideUp("slow"); 
    } 
}; 

但是發送到服務器後的值,並返回,我想基於價值保留DIV1或DIV2在下拉菜單中選擇。但截至目前,由於在初始級別顯示=無,所以div都不顯示。任何方式來保留這個?

+0

只是一句話:對於「非多」選擇你可以用'$('#SEL1當前所選的值「).VAL()'。沒有必要參考'選項:選擇' – devnull69

+0

你是通過ajax提交表單嗎? – kzhen

+0

HIya布魯夫請提供更多的HTML或可能是一個jsfiddle你可能會得到更多的迴應,有一個很好的! –

回答

0

如果您的HTML使用服務器端語言生成,那麼最好的選擇是隻在適當的時候將display: none CSS屬性添加到它們。或者,你可以只觸發change事件處理程序的DOM準備就緒時,使用:

$(document).ready(function(){ 
    $("#sel1").change(fun).trigger('change'); 
});