2011-09-19 46 views
7

我有一個包含10個選項的選擇框。每次選擇一個選項時,它都會在localstorage中設置您選擇的ID爲「select1」的值。使用選項值添加'selected'屬性

例如:如果您選擇您在本地存儲中獲得的第一個選項:Key:Emailclient - Value:Option1。

現在,IOM試圖使選擇表單中的localstorage值成爲選定的屬性。

這是我嘗試過,但似乎並沒有工作:

if (localStorage.getItem("Select1") == "Option1"){ 
    $('#selectbox').val("Option1").attr("selected"); 
} 

什麼,我哪裏做錯了?

編輯:

這是我的代碼:

<select id="selectbox" > 
         <option>Default</option> 
         <option>Option 1</option> 
         <option>Option 3</option> 
         <option>Option 3</option> 
         <option>Option 4</option> 
         <option>Option 5</option> 
         <option>Option 6</option> 
     </select> 

感謝

回答

18

這工作:

var optionValue = localStorage.getItem("Select1") 
$("#selectbox").val(optionValue) 
.find("option[value=" + optionValue +"]").attr('selected', true); 
+1

朋友,你救了我(y)。 – NullPointer

0

在進一步審查,它看起來好像你想要的東西更全面的功能link

search = "Option 5"; 
$('#selectbox option:contains('+search+')').prop('selected',true); 
+0

這是不符合邏輯的工作,它沒有。你正在設置選擇框選項來選擇什麼? – jQuerybeast

+0

已更新我使用的代碼 – jQuerybeast

+0

@Korvin您甚至不需要導航到選定的選項。只是打電話。val()選擇相同的結果。 –

0

嘗試這個:

if (localStorage.getItem("Select1") == "Option1"){ 
    $('#selectbox option:contains(Option1)').prop('selected',true); // jquery 1.6+ 
} 

如果您正在使用一個版本的jQuery比1.6老齡化,.attr

編輯取代.prop:多個動力版本

if (localStorage.getItem("Select1")) { 
    $('#selectbox option:contains(' + localStorage.getItem("Select1") + ')').prop('selected',true); 
} 
+0

它存在,它不起作用。 http://jsfiddle.net/uY7ck/ – jQuerybeast

+0

它適用於我,http://jsfiddle.net/uY7ck/2/檢查你的ID。你選擇了一個ID爲emailclient的選擇,當唯一的選擇在小提琴上有一個選擇框的ID –

+0

已更新小提琴http://jsfiddle.net/uY7ck/3/ –

1

我想你可能會尋找這樣的事情。 http://jsfiddle.net/tnPU8/3/

它通過選擇框的選項進行循環,並將其值與b的值進行比較。如果它們相等,則選擇框的索引會更改,以便顯示包含值b的選項。

var b; //set equal to what you want to compare 
$('#selectbox').find('option').each(function(i,e){ 
    console.log($(e).val()); 
    if($(e).val() == b){ 
     $('#selectbox').prop('selectedIndex',i); 
    } 
}); 

編輯:使用localStoragehttp://jsfiddle.net/tnPU8/7/

+0

它不起作用如果即時通訊嘗試從localStorage的。這裏是一個例子:http://jsfiddle.net/uY7ck – jQuerybeast

+0

@jQuerybeast確定它,更新我的答案。 – Jack

+0

謝謝先生。由於代碼少,我找到了更好的工作方式。你的方式,我需要輸入If語句儘可能多的選項。我的方式,只是3行代碼。非常感謝 – jQuerybeast

0

這是你應該需要:

$("#selectbox").val(localStorage.getItem("selectbox")); 

我已經更新了以前搗鼓一個例子: http://jsfiddle.net/uY7ck/1/

編輯: 在您最初發布的代碼中,假設您將t設置爲localStorage他同樣的選擇框,你會比較「選項1」(無空格)和「選項1」(空格)。這種比較永遠不會起作用,所以選項永遠不會被選中。

+0

在您的編輯:真。我發現這是一個問題,但無論如何,我所有的選擇都沒有空格。我發現我的工作方式要好得多,因爲我不需要像選擇一樣多次輸入If語句,而不是隻輸入3行代碼。非常感謝 – jQuerybeast

相關問題