Эти решения, похоже, предполагают, что каждый элемент в ваших выпадающих списках имеет значение val () , относящееся к их позиции в раскрывающемся списке.
Все немного сложнее, если это не так.
Чтобы прочитать выбранный индекс выпадающего списка, вы должны использовать это:
$("#dropDownList").prop("selectedIndex");
Чтобы установить выбранный индекс выпадающего списка, вы должны использовать это:
$("#dropDownList").prop("selectedIndex", 1);
Обратите внимание, что для функции prop () требуется JQuery v1.6 или более поздней версии.
Посмотрим, как бы вы использовали эти две функции.
Предположим, у вас есть выпадающий список названий месяцев.
<select id="listOfMonths">
<option id="JAN">January</option>
<option id="FEB">February</option>
<option id="MAR">March</option>
</select>
Вы можете добавить кнопку «Предыдущий месяц» и «Следующий месяц», которая просматривает выбранный в данный момент элемент раскрывающегося списка и изменяет его на предыдущий / следующий месяц:
<button id="btnPrevMonth" title="Prev" onclick="btnPrevMonth_Click();return false;" />
<button id="btnNextMonth" title="Next" onclick="btnNextMonth_Click();return false;" />
А вот JavaScript, который будут запускать эти кнопки:
function btnPrevMonth_Click() {
var selectedIndex = $("#listOfMonths").prop("selectedIndex");
if (selectedIndex > 0) {
$("#listOfMonths").prop("selectedIndex", selectedIndex - 1);
}
}
function btnNextMonth_Click() {
// Note: the JQuery "prop" function requires JQuery v1.6 or later
var selectedIndex = $("#listOfMonths").prop("selectedIndex");
var itemsInDropDownList = $("#listOfMonths option").length;
// If we're not already selecting the last item in the drop down list, then increment the SelectedIndex
if (selectedIndex < (itemsInDropDownList - 1)) {
$("#listOfMonths").prop("selectedIndex", selectedIndex + 1);
}
}
Следующий сайт также полезен, чтобы показать, как заполнить раскрывающийся список данными JSON:
http://mikesknowledgebase.com/pages/Services/WebServices-Page8.htm
Фу !!
Надеюсь, это поможет.