У меня есть форма, в которой пользователь может отправить форму, чтобы указать, какие системы необходимо обновить. В форме они могут динамически добавлять системы в форму, поэтому у меня нет доступных уникальных идентификаторов. В форме им нужно выбрать платформу (unix, hp, wintel и т. Д.), А затем соответствующую модель для сопровождения выбранной платформы - подумайте, приковать к цепочке. Когда первый выбранный список в «элементе» изменяется, делается ajax-вызов для получения значений для 2-го списка выбора. Как я могу обновить второй список выбора в «элементе» только для соответствующего цепочки выбора?
Я использую метод клонирования, чтобы позволить пользователям добавлять элементы в форму. Таким образом, идентификатор больше не уникален на странице, поэтому я использую класс, чтобы выяснить, какая кнопка выбора была изменена. Как это работает прямо сейчас, каждый второй список выбора обновляется, и я хочу, чтобы обновлялся только выбранный список выбора, соответствующий 1-му списку выбора. Я считаю, что next () - это ответ, но я полагаю, что мой синтаксис неправильный.
Класс 1-го списка выбора - платформа, а 2-го - модель.
обновляет каждый второй список выбора : $ ("select.model"). Html (параметры)
ничего не обновляется : $ ("select.model"). Next (). Html (options);
Любая помощь будет оценена.
<div id="mySelectArea">
<select id="myFirstOption" class="myFirstOption">
<option>1</option>
<option>2</option>
<option>3</option>
</select>
<select id="mySecondSelect" class="mySecondSelect">
<option>1</option>
<option>2</option>
<option>3</option>
</select>
</div>
<div id="mySelectArea">
<select id="myFirstOption" class="myFirstOption">
<option>1</option>
<option>2</option>
<option>3</option>
</select>
<select id="mySecondSelect" class="mySecondSelect">
<option>1</option>
<option>2</option>
<option>3</option>
</select>
</div>
<script>
jQuery(document).ready(function()
{
$(".myFirstOption").live("change", function() {
$.getJSON("live_getModels.cfm",{platform: $(this).val()},
function(j){
var options = '';
for (var i = 0; i < j.length; i++)
{
options += '<option value="' + j[i].optionValue + '">' + j[i].optionDisplay + '</option>';
}
$(this).next("#mySecondSelect").html(options);
});
});
});
</script>
А вот пример результатов JSON для более точной демонстрации:
[{"optionValue":"", "optionDisplay":"Select Model"},{"optionValue":"TBD", "optionDisplay":"TBD"},{"optionValue":"SCCM", "optionDisplay":"SCCM-standalone"},{"optionValue":"Manual", "optionDisplay":"Manual-standalone"},{"optionValue":"SCCM-VMWare", "optionDisplay":"SCCM-VMWare"},{"optionValue":"Manual-VMWare", "optionDisplay":"Manual-VMWare"},{"optionValue":"SCCM Hybrid", "optionDisplay":"SCCM Hybrid"},{"optionValue":"SCCM Hybrid VMWare", "optionDisplay":"SCCM Hybrid VMWare"},{"optionValue":"SCCM Offline", "optionDisplay":"SCCM Offline"},{"optionValue":"SCCM Offline - VMWare", "optionDisplay":"SCCM Offline - VMWare"}]