2012-06-25 2 views
1

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

То, что я пытаюсь сделать, скрывает конкретный выбор при перезагрузке страницы, если это значение не является пустой строкой (например, если кто-то выбирает «Окленд», я хочу, чтобы этот вход удалялся со страницы, когда он перезагружается, но другой выбор должен оставаться видимым).

Вот HTML ...

<ul> 
<li> 
    <label style="display:none;">Location:</label> 
    <select onchange="this.form.submit();" name="locations" class="filter-dropdown"> 
     <option value="">SELECT</option> 
     <option value="auckland" class="level-0">Auckland</option> 
     <option value="tauranga" class="level-0">Tauranga</option> 
     <option value="wellington" class="level-0">Wellington</option> 
    </select> 
</li> 
<li> 
    <label style="display:none;">Product or service:</label> 
    <select onchange="this.form.submit();" name="typeofproduct" class="filter-dropdown"> 
     <option value="">SELECT</option> 
     <option value="clothing" class="level-0">Clothing</option> 
     <option value="food" class="level-0">Food</option> 
     <option value="shoes" class="level-0">Shoes</option> 
     <option value="travel" class="level-0">Travel</option> 
    </select> 
</li> 

А вот моя бедная попытка с помощью JQuery ...

jQuery('.filter-dropdown').bind('change', function(event) { 

     var x = jQuery(".filter-dropdown option:selected").text(); 

     if (x == "") { 
      jQuery(this).show(); 
     } 
     else{ 
      jQuery(this).hide(); 
     } 
    }); 

Я пробовал различные это, но У меня есть страница, скрывающая все выпадающие списки (это должно быть только те, которые были выбраны). Причина, по которой я использую классы, а не идентификаторы, заключается в том, что на других страницах может быть больше выпадающих списков.

ответ

0

Это не хорошая функция, чтобы скрыть выбор пользователя, поэтому они не только не могут видеть, что они выбрали, но и не могут изменить его. Во всяком случае, следующий будет делать работу:

var element = docment.formName.locations; 
if (element.value != '') { 
    element.style.display = 'none'; 
} 

заменителя реальное имя или идентификатор формы для formName.

Обратите внимание, что при загрузке страницы выбор будет виден по умолчанию, поэтому его нужно только скрывать в зависимости от его значения. Обратите также внимание на то, что в большинстве браузеров значение будет значением первого параметра по умолчанию, если не выбран другой параметр, выбранный по умолчанию.

И, наконец, IE 8 и ниже не будут вести себя с приведенным выше, если параметры не имеют атрибута value, поэтому убедитесь, что они имеют один (что дает им то же значение, что и их текст).

+0

Это для ответа! И да, я понимаю, что это не самая лучшая функция, это скорее обходной путь на этом этапе. ПРИМЕЧАНИЕ: Я бы поднял вас на ногу, но я новичок в переполнении стека и в настоящее время не имею репутации. –

Смежные вопросы