2015-01-02 3 views
0

Мы создали сайт, который содержит функции поиска, позволяющие пользователю просматривать список результатов с помощью ряда выпадающих списков, и у нас возникает проблема обновления.Группировка Select2 Drop Down (Выбрать) проблема обновления

На сайте есть 4 выпадающих списка - все из которых серые (кроме первого) на странице загрузки - сначала выбирает шину Ширина - вторая, затем отображает доступные параметры профиля на основе первого выбора - 3-й показывает размеры обода на основе 1-го и 2-й выбор, а четвертый выбирает рейтинг на основе 3 лучших вариантов.

Каждый выпадающий объект имеет связанную функцию, которая запускается через событие onChange.

как в -

$('.sel0').on('change', function() { 
    alert('sel 0 selected'); 
    $(".sel1").removeAttr("disabled"); 
    //populate function for sel1 

}); 

Вопрос, который мы имеем, что если изменяется пользователь родитель падение вниз (то есть первый вариант профиля) к другому результату - некоторые из результатов во 2-й вариант может быть таким же, как и при предыдущем выборе - так, если, например, пользователь выбрал ширину 155, затем профиль 70 и т. д. - затем изменил свое мнение и хотел ширину ширины 145, профиль 70 - 70 УЖЕ имел бы был выбран в предыдущем выборе, поэтому функция, связанная с этим выпадающим, не будет запускаться как его «on change», а не «on click».

Поскольку события onclick не работают на выпадающих списках, нам нужно альтернативное решение - но их еще не обнаружено!

Я создал скрипт js (http://jsfiddle.net/s60mLvsm/2/), чтобы воссоздать свою проблему - выберите все параметры, затем попробуйте и повторно выберите параметры, которые уже выбраны, - очевидно, из-за обмена предупреждениями не срабатывает .. help !?

Любые предложения по выбору стиля onclick или onselect, пожалуйста, сообщите!

+0

создать скрипку и поделиться ею –

ответ

0

Использование ниже код:

$('.sel0').on('change', function() { 
    //alert('sel 0 selected'); 
    $('.sel1').removeAttr('disabled'); 
    $('.sel1 option').eq(0).prop('selected', 'selected'); 
    $('.sel2 option').eq(0).prop('selected', 'selected'); 
    $('.sel3 option').eq(0).prop('selected', 'selected'); 
    $('.sel2, .sel3').attr('disabled', 'disabled'); 
}); 

$('.sel1').on('change', function() { 
    //alert('sel 1 selected'); 
    $('.sel2').removeAttr('disabled'); 
    $('.sel2 option').eq(0).prop('selected', 'selected'); 
    $('.sel3 option').eq(0).prop('selected', 'selected'); 
    $('.sel3').attr('disabled', 'disabled'); 
}); 

$('.sel2').on('change', function() { 
    // alert('sel 2 selected'); 
    $('.sel3').removeAttr('disabled'); 
    $('.sel3 option').eq(0).prop('selected', 'selected'); 
}); 
  • Попробуйте короче, если вы можете.