JQuery код для получения значений в раскрывающемся меню на основе другого раскрывающегося списка

У меня есть данные JSON, как это

{
  "VMs":[
    {
      "ID":"VM-WIN7-64",
      "OS":"Windows 7",
      "FLAVOUR":"VM-IE8-001-preq",
      "ADAPTER":"Win 9",
      "Paths":"D:\\VirtualMachines\\Win7_X64_VM-001\\Win7_X64_VM-001.vmx"

    },
{
      "ID":"VM-WIN7-6",
      "OS":"Windows jj7",
      "FLAVOUR":"VM-IE8-001-preq",
      "ADAPTER":"Winjjjjj 9",
      "Paths":"f:\\VirtualMachines\\Win7_X64_VM-001\\Win7_X64_VM-001.vmx"

    }
  ]

}

и два выпадающих меню

 <tr>
            <td width="200px">
              Operating Systems : 
            </td>
            <td colspan="2">
              <select id="ops" class="longcombo">
              </select>
            </td>
          </tr>

          <tr>
            <td width="200px">
             Adapter :
            </td>
            <td colspan="2">
              <select id="adapter" class="longcombo">
              </select>
            </td>
          </tr>

          <tr>





 $.each(data.VMs, function (i) {
      os += '<option value="' + data.VMs[i].ID + '">' + data.VMs[i].OS + '</option>';
      adapter += '<option value="' + data.VMs[i].ADAPTER + '">' + data.VMs[i].ADAPTER + '</option>';
    });

    $('#ops').html("");
    $('#adapter').html("");
    $('#ops').html(os);
    $('#adapter').html(adapter);

при выборе имени ОС Windows 7 в первом выпадающем списке имеется в виду соответствующее имя адаптера Win 9 должен быть выбран в комбо адаптера

так же, как при выборе Windows jj7 я должен автоматически выбрать адаптер Winjjjjj 9 в выпадающем списке адаптера. Как это возможно?

1 ответ

Решение

Вы могли бы связать change событие в #ops выберите, и когда это изменится, отфильтруйте данные, чтобы загрузить это ко второму выбору.

Добавлен jsfiddle с решением. http://jsfiddle.net/x3Jgj/1/

Я сделал это с помощью JQuery each метод фильтрации данных, но я рекомендую вам использовать такой инструмент, как underscore.js.

Другие вопросы по тегам