Добавьте атрибут selected, используя значение параметра - PullRequest
10 голосов
/ 19 сентября 2011

У меня есть поле выбора с 10 вариантами.Каждый раз, когда вы выбираете опцию, она устанавливает в локальном хранилище значение, которое вы выбрали с идентификатором «select1».

Например: если вы выберете первый вариант, который вы получите в локальном хранилище: Key: Emailclient - Значение: Option1.

Теперь, я пытаюсь сделать значение 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>

Спасибо

Ответы [ 5 ]

25 голосов
/ 19 сентября 2011

Это работает:

var optionValue  = localStorage.getItem("Select1")
$("#selectbox").val(optionValue)
.find("option[value=" + optionValue +"]").attr('selected', true);
1 голос
/ 19 сентября 2011

Я думаю, вы можете искать что-то вроде этого. 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);
    }
});

Редактировать: Использование localStorage http://jsfiddle.net/tnPU8/7/

0 голосов
/ 19 сентября 2011

Это все, что вам нужно:

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

Я обновил предыдущую скрипку для примера: http://jsfiddle.net/uY7ck/1/

РЕДАКТИРОВАТЬ: В коде, который вы разместили изначально, предполагая, что выустанавливаете localStorage с тем же полем выбора, вы бы сравнили «Option1» (без пробела) с «Option 1» (пробел).Это сравнение никогда не будет работать, поэтому опция никогда не будет выбрана.

0 голосов
/ 19 сентября 2011

Попробуйте это:

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

если вы используете версию jQuery старше 1.6, замените .prop на .attr

Редактировать: более динамичная версия

if (localStorage.getItem("Select1")) {
  $('#selectbox option:contains(' + localStorage.getItem("Select1") + ')').prop('selected',true);
}
0 голосов
/ 19 сентября 2011

При дальнейшем рассмотрении выглядит так, как будто вы хотели что-то более полнофункциональное ссылка

search = "Option 5";
$('#selectbox option:contains('+search+')').prop('selected',true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...