2012-06-17 2 views
0

У меня есть выпадающее меню. Имеет типы продуктов. Типы продуктов имеют связанные значения (из раскрывающегося списка) соответствуют группам машин.как отфильтровать текст выбранного значения в раскрывающемся списке

Таким образом, каждый параметр должен иметь три переменные - имя машины, значения, группу машин.

Я могу получить имя машины, и я могу получить машинное значение (и отобразить их в другом поле) ... то, что я не смог выяснить, - это изменить значение в группе «Машина».

jQuery('#MachineName').bind('change', function() 
    { 

     //get selected value from drop down; 
     var selectedValue = jQuery("#MachineName").val(); 

     //populate a text field with the selected drop down value 
     jQuery("#MachineValue").val(selectedValue); 

То, что я хотел бы сделать, это сохранить эту MachineValue, но затем заполнить другое текстовое поле с отсортированной MachineGroup

Я пытался запустить его через что-то вроде

switch(jQuery(this).val()){ 
    case "236" : newVal = "8"; 
    break; 

Но я не хочу «изменять» значение, которое я просто хочу использовать для фильтра типа «если тогда», возможно, что-то вроде:

'236' => "8", '237' => "5", 

Я просто не знаю, как правильно сказать «назначить MachineGroup на основе MachineValue» (а затем заполнить другое текстовое поле)

В конце концов у меня было бы три поля. Падение вниз, MachineValue и MachineGroup. Падение и значение сделаны, мне просто нужно сделать Group. (И я могу сортировать группу на основе MachineName ... просто не уверен, что было бы проще)

ответ

0

Простейшим на стороне клиента является добавление сервером дополнительных атрибутов data- к разметке. jQuery.data() позволяет легко их восстановить.

HTML:

<option value="5" data-group="foo" data-name="Bar">Bar</option> 

JS:

$('select').change(function(){ 
    var $sel=$(this).find('option:selected'); 
    var machineGroup=$sel.data('group'); 
    var machineName=$sel.data('name'); 
    var value= $sel.val()// or $(this).val(); 
}); 

API (читай внизу первой серии примеров, функция не было в оригинальной API)

http://api.jquery.com/data/

+0

Спасибо ... это будет работать красиво, но у меня к сожалению нет доступа для добавления дополнительных атрибутов данных. Это падение динамически генерируется, поэтому я застрял в том, что могу работать только с двумя существующими машинамиName и machineValue, которые я не могу изменить/изменить. – Carlos

+0

ОК. У вас есть массив, который показывает, что происходит в каждой группе? Вопрос был ответом сложным, не зная, с чем вам нужно работать. – charlietfl

+0

да. Я делаю. Я могу связать machineGroup с именем machineName или machineValue "173": newVal = "3"; ломать; или «236» => «8», «237» => «5», или «kkm-444» => «8» (kkm-444 - это номер машины 173, 236, 237, являющийся машинным значением и 8, 5, 3 - machineGroup) – Carlos

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