Применение:
У меня есть форма, которая имеет выпадающее меню, которое контролируется другим выпадающим списком. При загрузке страницы (если значения, которые были выбраны ранее, PHP загружает их), выберите раскрывающийся список # 2, скрывающий несколько параметров (это работает). При выборе конкретной опции с выпадающим списком выберите # 1, откроется список скрытых опций раскрывающегося списка (.show (), это работает).
Проблема: (Пример для описания проблемы: http://jsfiddle.net/RqhbY/7/ )
Когда скрытые параметры отображаются / доступны, и один выбран, а затем раскрывающийся список # 1 изменяет это значение, которое скрывает параметры в раскрывающемся списке # 2, при передаче выбранное скрытое значение отправляется.
Как я могу отменить выбор / сброс выбранного параметра, который теперь скрыт?
Попробуйте изменить:
$('select[name=two[0]] option').attr('selected', false);
с:
$('select[name=two[0]] option').removeAttr('selected');
ОБНОВИТЬ
Хорошо, я протестировал вышеуказанный код в IE 8, и отключенная <option>
по-прежнему выбрана. Казалось, что это работает:
$('select[name=two[0]]').children('option').removeAttr('selected').filter(':nth-child(1)').attr('selected', true);
Демо: http://jsfiddle.net/RqhbY/9/
Обратите внимание, что вы можете обновить .filter()
чтобы выбрать только отключенные опции, но я оставлю это для вас.
ОБНОВИТЬ
Если вы вызываете .attr('selectedIndex', -1)
в элементе <select>
вы можете <option>
s. В раскрывающемся списке не будет отображаться значение, но будет пусто.