JS и selectbox. Проблема первого пункта

При разработке  сайтов иногда требуется создание следующего функционала: динамическая форма ввода данных, на которой присутствует SelectBox, он же выпадающий список. Выбор какого-либо состояния вызывает  изменение содержания формы (изменение содержимого текстового окна или другого выпадающего списка, запрос данных из формы и пр.).

Обычно решение этой задачи находится при использовании соответствующего JavaScript, отслеживающего изменение состояния выпадающего списка. Единственный, насколько мне известно, способ отследить это изменение — использование события onchange списка.

Существует, однако, следующая проблема: при «подборе» пользователем параметров списка (последовательный или случайный перебор его значений) не вызывает события onchange при выборе пользователем изначального значения списка. С этой проблемой пришлось столкнуться и мне. На разрабатываемом мною сайте необходимо было изменять значение текстового поля (цены товара) при выборе выпадающим списком конфигурации товара. Возврат же цены к первоначальному значению, соответствующему первоначальной же конфигурации скриптом не производился. Мне повезло в следующем: список по желанию заказчика имел нестандартный произвольный внешний вид.

Ввиду ограниченных возможностей css по оформлению списков, эту задачу также пришлось возложить на одно из известных Java Script решений, которое заключается в следующем. Обрабатываемый список становится скрытым, а на его месте посредством набора блоков и спанов Javascript рисует псевдосписок необходимым образом оформленный с помощью css.   Одна из возможностей оформления — изменение местоположения собственно выпадающей части списка. В какой-то момент возни со списком, в голову мне и пришло следующее решение.

Я сформировал для списка ДВА первоначальных значения, оба разместил в верхней части списка. Но самое первое значение , то, которое списку присвоено первоначально при открытии формы, в выпадающей части списка «подложил» z-индексом под статичную часть списка, сделав недоступным для просмотра и выбора. Таким образом задача и была разрешена.

Сдав работу, я задумался: неужели для реализации динамической страницы на списках всегда придется производить их нестандартное оформление?

Пожалуй, я могу предложить еще такое решение, которое в некоторых условиях может пригодиться: Динамически управляющий список должен иметь значением по умолчанию «пустое» значение, не вызывающее   изменений данных на странице.

 

***

Хотите обсудить? Оставьте комментарий