#jquery #combobox #drop-down-menu #dropbox
#jquery #поле со списком #выпадающее меню #dropbox
Вопрос:
На моей странице есть dropbox, откуда пользователь может выбрать элемент. Оттуда они могут нажать на кнопку, которая добавляет другой dropbox (с клоном jquery). Что происходит дальше, так это то, что первый dropbox отключается, а выбранный параметр из этого первого поля скрывается во втором dropbox. Все это работает, но есть одна проблема: когда я выбираю первый вариант в первом окне, этот вариант выбирается во втором окне. Когда я открываю поле, его там нет, поэтому я не могу выбрать его сам, но он выбирается автоматически, когда я добавляю поле!
Кратко — два выпадающих списка — выбранный вариант в выпадающем списке 1 скрывается в выпадающем списке 2 — выбранный первый вариант из выпадающего списка 1 ! = выбранный (скрытый) вариант в выпадающем списке 2
Я уже пытался отключить эту опцию и обновить поле, но опция продолжает выбираться при загрузке страницы.
Вот как я скрываю элемент: $('.group option[value=' selitem ']').hide();
Есть идеи?
Комментарии:
1. Поскольку ваш пример несколько сложный, я бы предложил создать jsFiddle, который показывает ошибочное поведение, чтобы мы могли видеть, что вы делаете.
2. укажите ссылку на скрипку, если она вам нужна jsfiddle.net
Ответ №1:
Одна вещь, которую можно попробовать, — отменить выбор параметра, подобного этому:
.attr("selected","");
Недавно у меня возникли проблемы с полями выбора, и я обнаружил, что недостаточно межбраузерной согласованности в том, как они ведут себя в отношении того, что они показывают как «выбранное», если ничего не выбрано, особенно при добавлении и удалении элементов из них.
Одно из решений этого, которое предлагали другие (и я рассмотрел, но мои требования не оправдали моего времени), заключается в замене поля выбора более гибким решением на основе jQuery, которое либо заменяет поле выбора браузера «пользовательским», имитирующим его, либо использовать пользовательский интерфейс, отличный от поля выбора, и сделать его из списка (возможно, из списка переключателей в качестве вспомогательных элементов)
Комментарии:
1. Что ж, спасибо за быстрый ответ. Это немного лучше. Теперь выбранное поле просто пустое. Но это не так, как должно быть. Я думаю, единственный вариант — заставить его выбрать любой другой элемент. Есть ли способ сделать это без цикла?
2. @Jovy — Вы могли бы попробовать установить опцию типа «Пожалуйста, выберите» по умолчанию в качестве первой опции нового поля выбора. Вы могли бы отменить выбор параметра «Входящие» и установить значение по умолчанию, которое будет выбрано. Для этого не потребовался бы цикл, но когда я это сделал, я все равно столкнулся с разным поведением в разных браузерах (см. Мой обновленный ответ выше)
3. Это лучшее решение, чем у меня есть сейчас, спасибо. Я установил для выбранной опции значение .next (), и это тоже помогло. Но ваш лучше 🙂