JQuery .toggle () не работает на IE9 с опциями выбора - PullRequest
0 голосов
/ 28 марта 2012

У меня небольшая проблема.У меня есть два зависимых выпадающих списка.Если сначала выбрать sth, то на втором вы увидите отфильтрованные параметры.На FF все работает хорошо, но когда я пробую его на IE9, то перестанет работать переключатель.У меня есть все варианты видны.Мои коды:

HH1:
<select name="color">
    <option value="1">blue</option>
  <option value="2">red</option>
</select>

HH2:
<select name="size">
  <option value="0" data-shown="0" data-link="">Please select</option>  
  <option value="1" data-shown="1" data-link="link1">L</option>
  <option value="2" data-shown="1" data-link="link2">M</option>
  <option value="3" data-shown="2" data-link="link3">XL</option>
  <option value="23" data-shown="2" data-link="link4">XM</option>
</select>

Мой код jQuery:

$('select[name="color"]').change(function () {
    var number = parseInt($('option:selected', this).attr('value'));
    $('select[name="size"] option').each(function(){       
        if (parseInt($(this).attr('data-shown')) != 0){              
            $(this).toggle(false);           
            $(this).toggle(parseInt($(this).attr('data-shown')) == number);
        }else {
            $(this).attr('selected', true);
        }});
}).trigger('change');

Если у вас есть решение, пожалуйста, помогите...... Интересно, должен ли я поместить это в готовый документ-скрипт или что-то в этом роде.

мой пример: http://jsfiddle.net/KD7Q5/1/

Ответы [ 3 ]

1 голос
/ 29 марта 2012

ShankarSangoli ответ хороший. Я добавлю, что если вы хотите, чтобы параметры исчезли, вы можете оставить скрытым select и скопировать из него параметры в видимый.

Демо: http://jsfiddle.net/XjShS/

В этом примере у меня есть select с именем hsize (скрытый размер ... не выбирайте паршивых имен, как я). Это имеет все варианты. Когда обработчик change срабатывает, он очищает опции в size select, а затем добавляет соответствующие из hsize.

0 голосов
/ 29 марта 2012

Возможно, вам лучше динамически повторно заполнять элемент size каждый раз, когда делается выбор для элемента color.Это кросс-браузерное решение для вашей «проблемы», и вам не придется иметь дело с скрытыми вариантами.

0 голосов
/ 28 марта 2012

IE не поддерживает скрытие элемента option. Если отключение будет работать для вас, я бы посоветовал вам сделать это.

Рабочая демонстрация с отключением опции - http://jsfiddle.net/KD7Q5/3/

...