Извините за откровенное саморекламу, но у меня раньше была та же проблема, и я написал плагин Chained Selects , чтобы соответствовать моим потребностям. Это похоже на то, что предлагал Glennular, но с некоторыми отличиями. Вместо того, чтобы строить выборки из массива JSON, он использует атрибуты класса HTML, чтобы выяснить, какие опции должны быть показаны. Например:
<select id="mark">
<option value="">--</option>
<option value="bmw">BMW</option>
<option value="audi">Audi</option>
</select>
<select id="series">
<option value="">--</option>
<option value="series-3" class="bmw">3 series</option>
<option value="series-5" class="bmw">5 series</option>
<option value="series-6" class="bmw">6 series</option>
<option value="a3" class="audi">A3</option>
<option value="a4" class="audi">A4</option>
<option value="a5" class="audi">A5</option>
</select>
Затем вы должны связать их с помощью следующего JavaScript:
$("#series").chained("#mark");
или, если вы предпочитаете более длинную форму:
$("#series").chainedTo("#mark");
Вы также можете проверить источник отдельной демонстрационной страницы .