#javascript #forms #shadowbox
#javascript #формы #shadowbox
Вопрос:
Я уверен, что я не могу быть первым человеком, у которого возникла эта проблема, но мне не повезло найти решение.
Я использую Shadowbox в его простейшей форме; просто создаю всплывающее изображение со ссылкой типа
Click <a href="myimage.png" rel="shadowbox">here</a> to view the image.
Это работает нормально, но имеет один очень странный побочный эффект: когда я нажимаю на ссылку, все входные данные для выбора (т. Е. выпадающие списки) формы на моей странице исчезают. Небольшая проверка с помощью Firebug показывает, что CSS модифицируется, чтобы придать <select>
тегам свойство visibility: hidden
. Когда изображение закрывается, входные данные появляются снова.
Неудивительно, что это происходит последовательно во всех браузерах.
Поскольку все входные данные появляются снова, я, вероятно, мог бы просто оставить все как есть. Однако, если (например) изображение не может быть загружено, и скрипт не может его отобразить, входные данные остаются невидимыми. Кроме того, это выглядит странно, и это сводит меня с ума. 😀
Другие факторы, которые могут иметь или не иметь значения:
- В прошлом я очень мало работал с Shadowbox и вполне мог упустить что-то смущающе очевидное.
- Моя страница и ее форма генерируются CakePHP.
- На странице используется jQuery, а Shadowbox использует адаптер jQuery.
- Исчезающие входные данные не имеют
class
атрибутов. У них естьid
атрибуты, которые генерируются CakePHP, но эти имена очень специфичны для моего приложения и вряд ли вызовут какие-либо коллизии CSS. - Насколько я могу судить, все выбранные входные данные исчезают, и ни один другой элемент, входной или иной, на странице вообще не затрагивается. (Даже метки, связанные с входными данными, не затрагиваются.)
- Версии: Shadowbox 3.0.3, jQuery 1.4.2, CakePHP 1.3
Ответ №1:
Скорее всего, это полу-ошибка в shadowbox. Теги select скрыты, потому что в некоторых версиях IE они отображаются с использованием встроенных элементов управления Windows и, таким образом, всегда отображаются «над» любым другим элементом с z-индексом. Очевидно, что это проблема для ShadowBox, поэтому решение состоит в том, чтобы скрыть их при отображении окна. Shadowbox явно должен делать это только для проблемных браузеров, но я думаю, что они используют более общий подход, всегда скрывая их.
Комментарии:
1. О, они перечислены здесь в явном виде . Посмотрите на «troubleElements». Вы можете настроить их, если уверены, что в поддерживаемых вами браузерах не возникнет проблем.
2. Я должен был знать, что могу как-то обвинить Microsoft. 🙂 Спасибо.