2012-06-22 5 views
0

ОК, так что я заселять переключатель с JSON, который выглядит примерно так:Измените значение выбора на основе другого атрибута

Object{ 
"data": 
[{"filter":"en","id":"2","label":"English"}, 
{"filter":"no","id":"3","label":"Norwegian"}, 
{"filter":"nl","id":"4","label":"Dutch"}] 
} 

В настоящее время, если я jQuery("#mySelect").val() я получаю значение «идентификатора» для выбранного варианта, и если я использую .text() или .html(), я получаю значение выбранной метки. Что я хочу сделать, это изменить выбранную опцию на основе значения «фильтр», так что, например, я хочу проверить, имеет ли выбранный параметр фильтр «нет», и если это не так, я хочу выбрать опция, который делает.

Любая помощь будет оценена по достоинству.

+0

Можете ли вы поместить свой код в jsFiddle? –

+0

Что выбрать? можете ли вы включить свой HTML и другой jQuery? – ManseUK

+0

Какую опцию следует выбрать, если текущий выбор имеет 'filter = no'? следующий? предыдущий? –

ответ

2

Вы можете использовать данные атрибуты для заманчивой:

HTML

<select> 
    <option data-filter="en" value="1">English</option> 
    <option data-filter="no" value="2">Norwegian</option> 
</select>​ 

Js

$('select').change(function() { 
    var id = $(this).find('option:selected').data('filter'); 
    alert(id); 
});​ 

В случае, если вы будете создавать выбора динамически вы можете установить данные атрибуты, как: $('option').data('filter', 'no');

Пример: http://jsfiddle.net/kzHfF/

P.S. Вы можете использовать атрибуты данных mutch как вам нужно.

+0

Спасибо, что было очень близко к тому, что мне нужно – DVM

+0

Связанный вопрос: Если вы хотите изменить выбранный параметр на основе значения, вы можете сделать что-то вроде $ ('select'). Val ('2') (насколько это возможно я знаю). Может ли что-то подобное делать с данными? например, $ ('select'). Данные ('2') и выбранная опция теперь будут с фильтром данных 2? – DVM

+0

Только с трюком: '$ (" select "). Val ($ (" select option [data-filter = no] "). Val());' – Samich

1

Добавить новый атрибут для каждого параметра, который содержит значение фильтра

<select> 
    <option filter="en" value="2">English</option> 
    <option filter="no" value="3">Norwegian</option> 
    <option filter="n1" value="4">Dutch</option> 
</select> 

Вы получите выбранный вариант с $ («выберите вариант: выбранный») и получить значение атрибута фильтра из него.

$('select').change(function(){ 
    console.log($('select option:selected').attr('filter')); 
}); 
Смежные вопросы