Jquery Chosen обновляет каскадные селекторы на шаг позади родных блоков выбора

0

Я использую jquery, выбранный в 4 блоках выбора, которые заполняются через базу данных.

Идентификаторы окна выбора: # Year_395, # Make_395, # Model_395, # Trim_395.

Я использую следующий сценарий, чтобы "каскадировать" их так, чтобы опции второго варианта выбора зависели от того, какой параметр был выбран в первом, параметры для третьего зависят от второго выбора и т.д.

function cascadeSelect(parent, child){
    var childOptions = child.find('option:not(.static)');
    child.data('options',childOptions);

    parent.change(function(){
        var parentValue = (this.value).replace(" ", "_");
        childOptions.remove();
        child
             .append(child.data('options').filter('.sub_' + parentValue))
             .change();
    })

    childOptions.not('.static, .sub_' + parent.val()).remove();
}

Собственные прямоугольники выбора правильно каскадируются. Проблема в том, что когда я реализую jQuery Chosen, новые флажки выбирают, но делают это на один шаг за пределами собственных ящиков. На данный момент я использую приведенный ниже код, чтобы обновить параметры для отображения окна выбора замены jQuery Chosen. Это должно привести к тому, что jQuery Chosen будет обновлять # Trim_395, как только будет выбран вариант для # Model_395.

$("#Model_395").chosen().change(function(){
    $("#Trim_395").trigger('chosen:updated');
});

Вот ссылка на сайт сборки:

Вы увидите, что если вы выберете свой год, сделать и модель, никакие параметры отделки не будут доступны, как если бы вы еще не выбрали модель. Если вы затем выберите другую модель, отобразятся параметры для выбранной первой модели. При выборе третьей модели будут отображаться параметры обрезки для второго и т.д.

Теги:
jquery-chosen

1 ответ

2

Я понял это сам. jQuery Chosen обновлялся до того, как скрытые поля выбора успели обновиться:

 $("#Model_395").change(function(){
 wto = setTimeout(function() {
     $("#Trim_395").trigger('chosen:updated');
}, 500);
 });

Решила проблему. Спасибо всем, кто посмотрел :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню