У меня есть два выбора, которые связаны: каждое значение первого выбора определяет, какие элементы будут отображаться во втором выборе.
Значения второго выбора сохраняются в двухмерном массиве:
[ [{"id":1,"text":"a"}, {"id":2,"text":"b"},...],
[{"id":"1a","text":"aa"},{"id":"1b","text":"ba"},...],
...
]
Первое значение выбора определяет индекс, который будет использоваться для заполнения второго выбора. Поэтому в событии "change" в первом случае я должен иметь возможность изменять элементы select-two.
Документация для чтения. Мне кажется, мне нужно использовать параметр "data"... но не пытаюсь понять, как пример загружает данные массива при инициализации и, похоже, не работает, если я попытаюсь сделать то же самое после инициализации.
HTML
Attribute:
<select name="attribute" id="attribute">
<option value="0">Color</option>
<option value="1">Size</option>
</select>
Value:
<select name="value" id="value"></select>
<script>
var data = [ [{"id":1,"text":"black"}, {"id":2,"text":"blue"},...],
[{"id":"1","text":"9"},{"id":"1","text":"10"},...],
];
$('#attribute').select2().bind('change', function(){
// Here I need to change `#value` items.
$('#value').select2('data',data[$(this).val()]); // This does not work
);
$('#value').select2();
</script>