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.