Select2 - динамически загружать данные

Я использую плагин select2. Я пытаюсь заставить e3 «загружать» данные из областей массива на основе второго поля выбора. Это мой код:

var regions = [{"first":["City1", "City2"],"second":["City3", "City4"]}];
$('#e2').select2().on('change', function() {
    $.each(regions[($("#e2").val())], function(key,value) {
        $("#e3").append("<option value='"+value+"'>"+value+"</option>");
    });
}).trigger('change');

РЕДАКТИРОВАТЬ: ошибка, которую я получаю, каждый раз, когда я меняю значение #e2: Uncaught TypeError: Cannot read property 'length' of undefined


Что я делаю не так?

Спасибо! :)

РЕДАКТИРОВАТЬ2:

$('#e2').select2().on('change', function() {
    $.each(region[$("#e2").select2("val")], function(key,value) {
        alert(region[$("#e2").select2("val")]);
        $("#e3").append("<option value='"+value+"'>"+value+"</option>");
    });
}).trigger('change');

Это было предложено... Это все еще дает предыдущую ошибку (Uncaught TypeError). Однако предупреждение возвращает: undefined


person pangi    schedule 29.03.2013    source источник


Ответы (1)


Это: $("#e2").val() должно измениться на это: $("#e2").select2("val")

person Jake Zeitz    schedule 29.03.2013
comment
что он возвращает в консоль, если вы предупреждаете значение? - person Jake Zeitz; 29.03.2013
comment
так что предупреждение говорит? он получает номер или текст? - person Jake Zeitz; 29.03.2013
comment
извините, забыл это указать - пишет undefined - person pangi; 29.03.2013
comment
что говорит alert($("#e2").select2("val");? без региона[...] - person Jake Zeitz; 29.03.2013
comment
он возвращает значение, как и должно - person pangi; 29.03.2013
comment
значение - текст - например первый или второй (без кавычек), из массива (у меня есть скрипт, который строит #e2 из того же массива) - person pangi; 29.03.2013
comment
давайте продолжим это обсуждение в чате - person pangi; 29.03.2013