WEB - ПРОГРАММИРОВАНИЕ & СОФТ ДЛЯ ФОРЕКС
WEB - ПРОГРАММИРОВАНИЕ & СОФТ ДЛЯ ФОРЕКС


Софт и программы анализа рынка форекс. Программы позволяют проводить анализ рынка форекс, строить торговые модели и выстраивать экстраполяцию цены. На этом сайте Вы можете бесплатно скачать программы, которые помогут Вам.

Вход

Забыли пароль?



Ноябрь 2017
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
27282930   

Календарь Календарь

Опрос

Пользуетесь ли Вы специальными программами для анализа рынка форекс?

46% 46% [ 55 ]
18% 18% [ 21 ]
11% 11% [ 13 ]
26% 26% [ 31 ]

Всего проголосовало : 120

Социальные закладки
Социальные закладки Digg  Социальные закладки Delicious  Социальные закладки Reddit  Социальные закладки Stumbleupon  Социальные закладки Slashdot  Социальные закладки Yahoo  Социальные закладки Google  Социальные закладки Blinklist  Социальные закладки Blogmarks  Социальные закладки Technorati  

Поместите адрес форума ФОРЕКС. ПРОГРАММЫ ДЛЯ АНАЛИЗА РЫНКА на вашем сайте социальных закладок (social bookmarking)

Поместите адрес форума WEB - ПРОГРАММИРОВАНИЕ & СОФТ ДЛЯ ФОРЕКС на вашем сайте социальных закладок (social bookmarking)

Последние темы
» индикатор Linear Regression Curve
Пт Янв 09, 2015 5:40 am автор niksamm

» Конкурс на форуме Roboforex
Вт Янв 06, 2015 10:00 pm автор Avsinth

» Конкурс на демо счетах от компании Roboforex
Пн Янв 05, 2015 10:04 pm автор roboreal

» Подскажите веб-студию для создания сайта?
Ср Окт 15, 2014 9:49 pm автор FiveStars

»  Real Time Quotes Downloader 1.4 - программа получения котировок
Сб Сен 13, 2014 5:00 pm автор vazkattat

» Invest-System автоматическая программа для Forex
Пт Май 23, 2014 5:30 pm автор mick541

» Приложение AutoGraf 4.
Пт Апр 04, 2014 10:30 pm автор Alyona_AG

»  FxRealTrade
Вт Фев 18, 2014 9:01 pm автор promoterxx

» Love box теперь для компьютера
Сб Фев 08, 2014 12:29 am автор Нурсултан

» Скачать бесплатно индикатор Zoomer Pro
Вт Дек 17, 2013 1:41 pm автор Evgark

» Бесплатная программа - Учет сделок на форекс
Вс Ноя 17, 2013 8:13 pm автор antonbergov

» TirelessRobot
Вс Окт 20, 2013 4:20 pm автор nika88

» Как начать проводить игру Денежный поток в своем городе?
Ср Окт 02, 2013 2:57 pm автор Vitamen

» MACD на зыке RULANG
Пн Сен 23, 2013 7:57 pm автор АлександрЯ

» TirelessRobot
Ср Сен 18, 2013 7:19 pm автор monika777

» Пользуетесь ли Вы специальными программами для анализа рынка форекс
Вс Сен 01, 2013 6:41 pm автор Rstone

» Как заработать на рынке Forex?
Вс Сен 01, 2013 6:34 pm автор Rstone

» Как не потерять заработанное и куда грамотно вложить свои деньги - бесплатный вебинар
Пт Авг 16, 2013 3:18 pm автор Vitamen

» ForexClock - форекс-часы с аналитикой
Пт Июл 19, 2013 11:21 pm автор dolgicky

» Сам себе Антикризисный Управляющий - бесплатный вебинар
Вт Июл 09, 2013 4:57 pm автор Vitamen

» Как написать свою первую книгу чтобы повысить уровень продаж? - бесплатный вебинар
Вт Июл 09, 2013 4:26 pm автор Vitamen

» Поиск: новые программы скачать бесплатно
Вс Июл 07, 2013 10:30 pm автор Rostik

» Онлайн-тренинг - Защити свои деньги! От инфляции, мошенников и глупых инвестиций
Сб Май 04, 2013 12:28 am автор Vitamen

» Скачать программу для создания советников и индикаторов МТ4 и МТ5.
Пн Апр 22, 2013 12:01 am автор Kasper_68

» программа для создания советника
Сб Апр 20, 2013 3:20 pm автор maksad

» Как пенсионеру получать 13-ю пенсию в размере 12 000 рублей в год в течение 10 лет?
Вт Апр 02, 2013 8:08 pm автор Vitamen

» Первый этап создания информационной системы управления (ИСУ) для предприятия
Чт Мар 28, 2013 5:59 pm автор Admin

» Forex Tester - это профессиональная программа (тренажер), предназначенная для обучения трейдеров и приобретения ими необходимых навыков для успешной работы на рынке Forex. Она воспроизводит изменения валютных курсов за любой выбранный период с регулируемо
Ср Фев 20, 2013 1:11 pm автор ipmiha

» СКРИПТ, ЧАСТИЧНО ЗАКРЫВАЮЩИЙ СДЕЛКУ НА ФОРЕКС
Пт Фев 15, 2013 10:16 am автор nikol

» Автоматическая и ручная торговая система для рынка Forex
Чт Ноя 15, 2012 12:37 pm автор Борис2233

»  OmniTrader - программа технического анализа
Пн Окт 22, 2012 11:37 pm автор xxx1988

»  Investor's Dream 1.99.1 - программа торговой системы Билла Вильямса
Сб Сен 15, 2012 7:32 am автор seva1seva1

» СПИСОК ПРОГРАММ ДЛЯ ФОРЕКС
Сб Авг 25, 2012 4:20 pm автор telecserega

» Forex Market Hours - расписание торговых сессий на форекс
Сб Авг 25, 2012 4:17 pm автор telecserega

» Поиск по сайту
Сб Авг 04, 2012 11:59 pm автор Admin

» Считаете ли Вы, что скачивание файлов на этом сайте необходимо сделать платным ?
Пт Июл 27, 2012 8:58 am автор vodoley

»  Tradeguider 2.2.1.5 RT - программа - торговая система
Пн Май 28, 2012 4:00 pm автор godok

»  ASCTrend for Omega Prosuite 3.51 - готовая торговая система трейдера
Пн Май 28, 2012 3:40 am автор ПавелСевер

» PHP: Получить список баз данных сервера
Вт Апр 10, 2012 11:10 pm автор Admin

» MySQL очень быстрый, многопоточный, многопользовательский и поддерживающий SQL (Structured Query Language) сервер баз данных.
Пн Апр 09, 2012 2:19 am автор Admin

» Данное учебное пособие предназначено для изучения основ языка SQL - стандартного языка манипулирования данными в СУБД, реализующих реляционную модель данных. Описывается синтаксис наиболее употребимых операторов языка SQL, приводятся примеры. Обучающимся
Пн Апр 09, 2012 2:17 am автор Admin

» SELECT применяется для извлечения строк, выбранных из одной или нескольких таблиц. Выражение select_expression задает столбцы, в которых необходимо проводить выборку. Кроме того, оператор SELECT можно использовать для извлечения строк, вычисленных без ссы
Пн Апр 09, 2012 2:12 am автор Admin

» Выбор данных представляет собой наиболее часто встречающуюся операцию, выполняемую с помощью SQL. Оператор SELECT — один из самых важных операторов этого языка, применяемый для выбора данных. Синтаксис этого оператора имеет следующий вид:
Пн Апр 09, 2012 2:09 am автор Admin

» Первая страница на PHP Создайте файл с именем hello.php в корневом каталоге веб-сервера (DOCUMENT_ROOT) и запишите в него следующее
Пн Апр 09, 2012 2:06 am автор Admin

» "Как реализовать следующее: есть два HTML списка select, нужно динамически с помощью Javascript заполнить второй список по значению, выбранному в первом? И если я таких селектов связанных захочу много, а не два?" - эти вопросы были вчера заданы мне по ась
Пн Апр 09, 2012 1:39 am автор Admin

» Устанавливает форму курсора, когда он находится в пределах элемента. Вид курсора зависит от операционной системы и установленных параметров.
Пн Апр 09, 2012 1:31 am автор Admin

» CSS: color
Пн Апр 09, 2012 1:29 am автор Admin

» Универсальное свойство border позволяет одновременно установить толщину, стиль и цвет границы вокруг элемента. Значения могут идти в любом порядке, разделяясь пробелом, браузер сам определит, какое из них соответствует нужному свойству. Для установки гран
Пн Апр 09, 2012 1:25 am автор Admin

» Универсальное свойство background позволяет установить одновременно до пяти характеристик фона. Значения могут идти в любом порядке, браузер сам определит, какое из них соответствует нужному свойству. Для подробного ознакомления смотрите информацию о кажд
Пн Апр 09, 2012 1:22 am автор Admin

» Универсальное свойство, позволяющее одновременно задать стиль маркера, его положение, а также изображение, которое будет использоваться в качестве маркера. Для подробного ознакомления смотрите информацию о каждом свойстве list-style-type, list-style-posit
Пн Апр 09, 2012 1:18 am автор Admin

» Поле <textarea> представляет собой элемент формы для создания области, в которую можно вводить несколько строк текста. В отличие от тега <input> в текстовом поле допустимо делать переносы строк, они сохраняются при отправке данных на сервер.
Пн Апр 09, 2012 1:13 am автор Admin

» Таблица «безопасных» HTML цветов
Пн Апр 09, 2012 12:48 am автор Admin

» Подсказки, которые отображаются обычно серым цветом внутри INPUT или TEXTAREA, довольно распространнены сейчас. Это удобный способ показать пользователю, что необходимо вводить в данное поле.
Пн Апр 09, 2012 12:36 am автор Admin

» Тег <nobr> уведомляет браузер отображать текст без переносов. Если этого тега в коде документа нет, а также имеются переводы строки, они игнорируются и текст выравнивается по левому краю окна браузера или родительского элемента. При этом браузер переводы
Пн Апр 09, 2012 12:29 am автор Admin

» Тег <a> является одним из важных элементов HTML и предназначен для создания ссылок. В зависимости от присутствия атрибутов name или href тег <a> устанавливает ссылку или якорь. Якорем называется закладка внутри страницы, которую можно указать в качестве ц
Пн Апр 09, 2012 12:27 am автор Admin

» HTML предлагает шесть заголовков разного уровня, которые показывают относительную важность секции, расположенной после заголовка. Так, тег <h1> представляет собой наиболее важный заголовок первого уровня, а тег <h6> служит для обозначения заголовка ше<H1>
Пн Апр 09, 2012 12:22 am автор Admin

» Список базовых тегов HTML
Пн Апр 09, 2012 12:14 am автор Admin

» Составление структурной схемы интернет - приложения
Вс Апр 08, 2012 11:39 pm автор Admin

» Этапы создания интернет - приложения
Вс Апр 08, 2012 11:36 pm автор Admin

»  Metastock 9.0 - программа технического анализа
Сб Мар 31, 2012 3:02 pm автор Яков 2

» ОПИСАНИЕ ПРОГРАММЫ AUTOCHARTIST
Пт Мар 30, 2012 2:45 pm автор vitaly363

» Metastock Pro 11.0 for eSignal torrent скачать
Вт Мар 13, 2012 7:50 pm автор Евг750

» ИНФОРМАЦИОННЫЕ СИСТЕМЫ И СТРАТЕГИИ
Ср Мар 07, 2012 9:13 am автор Admin

»  СТРАТЕГИИ ФОРЕКС
Ср Мар 07, 2012 9:10 am автор Admin

» Форекс - системы и стратегии
Ср Мар 07, 2012 9:08 am автор Admin

» Автоматическая и ручная торговая система для рынка Forex
Вт Мар 06, 2012 3:35 pm автор Борис2233

» УРОВНИ МЮРРЕЯ ФОРЕКС
Чт Фев 23, 2012 12:59 pm автор Eucharis

» Скачать гениратор советников и индикаторов MT4 и MT5.
Вт Фев 21, 2012 3:55 pm автор 2wsxcde

» Forex EA Generator
Вс Фев 19, 2012 12:53 pm автор 2wsxcde

» ИНФОРМАЦИОННЫЕ СИСТЕМЫ УПРАВЕНИЯ ПРЕДПРИЯТИЕМ
Ср Фев 08, 2012 10:01 pm автор Admin

» Пособие для начинающего трейдера [2011г.]
Пт Янв 20, 2012 5:55 pm автор leviafan

» Re: Cоздания советников и индикоторов МТ4
Чт Янв 19, 2012 9:01 pm автор 2wsxcde

» Re: Программы для создания советников и индикоторов МТ4 и МТ5.
Чт Янв 19, 2012 8:57 pm автор 2wsxcde

» КАК СДЕЛАТЬ СОВЕТНИКА. ПРОГРАММА FOREX OPTIMIZER
Сб Янв 14, 2012 2:59 pm автор Konstantin Pavlov

» Скачать гениратор советников и индикаторов MT4 и MT5.
Ср Янв 11, 2012 7:05 pm автор 2wsxcde

» скачать Forex Optimizer TT Версия 2.7
Вс Янв 08, 2012 10:20 am автор kavota

» FAM Generator
Вс Ноя 27, 2011 4:29 pm автор nord77

» СКАЧАТЬ СБОРНИК ФОРЕКС СИСТЕМ
Вс Ноя 20, 2011 4:37 pm автор UNISOFT

» НОВЫЕ ПРОГРАММЫ ДЛЯ ФОРЕКС (FOREX)
Чт Ноя 17, 2011 11:20 pm автор aleksas1

» Как правильно выбрать и купить систему форекс?
Чт Окт 27, 2011 3:15 pm автор Foxter

» ЮРИДИЧЕСКОЕ АГЕНТСТВО ДЛЯ ТРЕЙДЕРОВ ФОРЕКС
Пн Окт 10, 2011 9:31 pm автор Admin

» http://invest-system.net/partner/29005
Пт Сен 30, 2011 6:39 pm автор masadoje

» СКАЧАТЬ ФОРЕКС ТЕСТЕР (FOREX TESTER)
Ср Сен 28, 2011 9:18 pm автор AVB

» Торговля и склад. УСУ-Универсальная Система Учета
Пт Сен 23, 2011 9:09 pm автор Гость

» Сборник лучших готовых трендовых форекс систем. Их собрано более 15.
Сб Сен 17, 2011 10:41 pm автор UNISOFT

» ФОРЕКС. ПРОГРАММЫ ТЕХНИЧЕСКОГО АНАЛИЗА
Вт Сен 06, 2011 3:18 pm автор UNISOFT

» ФОРЕКС. ТОРГОВЫЕ СИСТЕМЫ И СТРАТЕГИИ
Вт Сен 06, 2011 3:17 pm автор UNISOFT

» ПРОГРАММЫ (СОФТ, ПО) ФОРЕКС
Вт Сен 06, 2011 2:49 pm автор UNISOFT

» ВОПРОСЫ ПО РАЗРАБОТКЕ И РАБОТЕ ПРОГРАММЫ "ARCHIMED"
Пт Авг 19, 2011 4:46 pm автор Admin

» Что искали посетители форекс форума
Пт Авг 12, 2011 7:21 pm автор Admin

» ОПИСАНИЕ ТОРГОВОЙ СИСТЕМЫ ДЛЯ ФОРЕКС - ЭЛЕМЕНТ
Пт Авг 05, 2011 8:34 pm автор Гость

» Программы для работы на рынке форекс (forex)
Пт Авг 05, 2011 8:32 pm автор Гость

» ПРОГРАММЫ И ТЕРМИНАЛЫ НА ФОРЕКС
Пт Авг 05, 2011 8:31 pm автор Гость

» ПРОГРАММЫ ДЛЯ ФОРЕКС
Пт Авг 05, 2011 8:24 pm автор Гость

» Forex программы для технического анализа Forex
Чт Авг 04, 2011 8:29 pm автор Maksim

» World Market Times - часы мировых торговых сессий FOREX
Ср Авг 03, 2011 9:38 pm автор Никита Сергеевич

» pokoje goscinne sopot
Чт Июл 28, 2011 7:45 am автор Гость

»  MESA 2002 - программа анализа циклов рынка
Пн Июн 20, 2011 8:30 pm автор Admin

» 100% рабочий ключ NOD32 до 2012г
Пн Июн 20, 2011 8:30 pm автор Admin

Самые активные пользователи
Admin
 
СОФТ ER
 
Alyona_AG
 
UNISOFT
 
Foxter
 
Scriptong
 
2wsxcde
 
ARCHIMED
 
vilis
 
valera606
 

Устанавливает форму курсора, когда он находится в пределах элемента. Вид курсора зависит от операционной системы и установленных параметров.

Пн Апр 09, 2012 1:31 am автор Admin

CSS: cursor

Краткая информация

Значение по умолчанию auto
Наследуется Да
Применяется Ко всем элементам

Версии CSS

CSS 1 CSS 2 CSS 2.1 CSS 3

Описание

Устанавливает форму курсора, когда он находится в пределах элемента. Вид курсора зависит от операционной системы и установленных параметров.

Прежде чем воспользоваться возможностью …

[ Полное чтение ]

Комментарии: 0

CSS: color

Пн Апр 09, 2012 1:29 am автор Admin

CSS: color

Краткая информация

Значение по умолчанию Зависит от настроек браузера, обычно черный цвет
Наследуется Да
Применяется Ко всем элементам

Версии CSS

CSS 1 CSS 2 CSS 2.1 CSS 3

Описание

Определяет цвет текста элемента.
Синтаксис

color: цвет | inherit
Значения

См. цвет

inherit
Наследует значение родителя.

Пример

XHTML 1.0CSS 2.1IE 9Cr 15Op 11Sa 5Fx 8
Код:



[ Полное чтение ]

Комментарии: 0

Универсальное свойство border позволяет одновременно установить толщину, стиль и цвет границы вокруг элемента. Значения могут идти в любом порядке, разделяясь пробелом, браузер сам определит, какое из них соответствует нужному свойству. Для установки гран

Пн Апр 09, 2012 1:25 am автор Admin

CSS: border

Краткая информация

Значение по умолчанию Зависит от использования
Наследуется Нет
Применяется Ко всем элементам

Версии CSS

CSS 1 CSS 2 CSS 2.1 CSS 3

Описание

Универсальное свойство border позволяет одновременно установить толщину, стиль и цвет границы вокруг элемента. Значения могут идти в любом порядке, разделяясь …

[ Полное чтение ]

Комментарии: 0

Универсальное свойство background позволяет установить одновременно до пяти характеристик фона. Значения могут идти в любом порядке, браузер сам определит, какое из них соответствует нужному свойству. Для подробного ознакомления смотрите информацию о кажд

Пн Апр 09, 2012 1:22 am автор Admin

CSS: background

Краткая информация

Значение по умолчанию transparent || none || repeat || scroll || 0% 0%

Наследуется Нет
Применяется Ко всем элементам

Ссылка на спецификацию http://программы для валютного рынка форекс и бирж.w3.org/TR/CSS21/colors.html#propdef-background

Версии CSS

CSS 1 CSS 2 CSS 2.1 CSS 3

Описание

Универсальное свойство background позволяет установить …

[ Полное чтение ]

Комментарии: 0

Универсальное свойство, позволяющее одновременно задать стиль маркера, его положение, а также изображение, которое будет использоваться в качестве маркера. Для подробного ознакомления смотрите информацию о каждом свойстве list-style-type, list-style-posit

Пн Апр 09, 2012 1:18 am автор Admin

CSS: list-style

Описание

Универсальное свойство, позволяющее одновременно задать стиль маркера, его положение, а также изображение, которое будет использоваться в качестве маркера. Для подробного ознакомления смотрите информацию о каждом свойстве list-style-type, list-style-position и list-style-image отдельно.
Синтаксис

list-style: list-style-type || list-style-position || …

[ Полное чтение ]

Комментарии: 0

Статистика
Всего зарегистрированных пользователей: 4498
Последний зарегистрированный пользователь: elisesmu

Наши пользователи оставили сообщений: 645 в 386 сюжете(ах)
Кто сейчас на форуме
Сейчас посетителей на форуме: 1, из них зарегистрированных: 0, скрытых: 0 и гостей: 1

Нет

[ Посмотреть весь список ]


Больше всего посетителей (88) здесь было Сб Июл 29, 2017 11:52 pm
loc


Вы не подключены. Войдите или зарегистрируйтесь

"Как реализовать следующее: есть два HTML списка select, нужно динамически с помощью Javascript заполнить второй список по значению, выбранному в первом? И если я таких селектов связанных захочу много, а не два?" - эти вопросы были вчера заданы мне по ась

Предыдущая тема Следующая тема Перейти вниз  Сообщение [Страница 1 из 1]

Admin

avatar
Admin
Javascript SELECT - динамические списки

"Как реализовать следующее: есть два HTML списка select, нужно динамически с помощью Javascript заполнить второй список по значению, выбранному в первом? И если я таких селектов связанных захочу много, а не два?" - эти вопросы были вчера заданы мне по аське и подвигли меня к написанию этой статьи...
Как это выглядит снаружи

Выбираете в первом списке браузер, при этом второй список заполняется названиями ОС на которых браузер работает, а исходя из значения второго списка, заполняется третий список, содержащий доступные версии браузера.
Работаем с SELECT из Javascript (что и как)

Для решения поставленной задачи необходимо иметь понятие о том как воздействовать на элемент SELECT из javascript скрипта.

Пусть у нас на странице есть элемент:
Код:

<FORM name="myForm">

  <select id="mySelectId" name="mySelect">
    <option value="str0"> Строка списка 0 </option>
    <option value="str1"> Строка списка 1 </option>
    <option value="str2"> Строка списка 2 </option>
  </select>

</FORM>

Как видно, SELECT состоит из элементов OPTION, которые представляют собой элементы списка. Сами элементы OPTION состоят из текстовой метки заключенной между тегами option и атрибута value в котором содержится значение соответствующее текстовой метке. Текстовая метка видна пользователю в списке, тогда как значение value не отображается на экране, а передается на сервер при отправке формы (на сервер передаются только значения выделенных элементов списка). Таким образом, для изменения элемента SELECT, мы должны воздействовать на элементы OPTION.

Для обращения к нашему элементу списка будем использовать DOM метод getElementById объекта document:
Код:

var objSel = document.getElementById("mySelectId");

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

Код:
var objSel = document.myForm.mySelect;

Где, myForm имя формы заданное через атрибут name в теге FORM, а mySelect имя элемента формы, заданное через атрибут name в теге SELECT.
Как добавить новый элемент в список SELECT ?

Все HTML элементы OPTION доступны в javascript-скрипте через свойство options объекта Select, которое является коллекцией элементов (упрощенно говоря массивом) элементов Option.

Код:
var objSel = document.getElementById("mySelect");

//Создаем новый объект Option и заносим его в коллекцию options
objSel.options[0] = new Option("Строка списка 0", "str0");
objSel.options[1] = new Option("Строка списка 1", "str1");
objSel.options[2] = new Option("Строка списка 2", "str2");

Добавлять элементы в конец списка удобно так:

Код:
objSel.options[objSel.options.length] = new Option("текст", "значение");

Свойство length объекта options содержит количество элементов в списке. Данное свойство доступно как для чтения, так и для записи. Если установить свойству length значение больше чем текущее количество элементов, то в список будут добавлены пустые элементы. Если же установленное значение меньше текущего количества элементов списка, то список будет усечен до указанного количества элементов (лишние элементы будут удалены). Таким образом, добавить новый элемент в список можно и так (допустим у нас есть пустой список, добавим первый элемент):
Код:

objSel.options.length=1; //добавляем в конец списка пустой элемент
objSel.options[0].text = "Строка списка 0";
objSel.options[0].value = "str0";

Вернемся к функции-конструктору Option(). Помимо указания текста и значения можно указать является ли элемент выделенным по умолчанию (defaultSelected), т.е. будет ли элемент выделенным при сбросе формы методом reset() и является ли элемент выделенным в данный момент (selected). Полный синтаксис функции конструктора объекта Option имеет следующий вид:
Код:

var newOpt = new Option("text", "value", isDefaultSelected, isSelected);

Где, первые два аргумента - это строки, а третий и червертый булевы аргументы и принимают значения true или false.

До сих пор для добавления элемента мы использовали BOM, однако лучше, во всех отношениях, использовать методы DOM, и реализовывать добавление элемента так:

Код:
function addOption (oListbox, text, value, isDefaultSelected, isSelected)
{
  var oOption = document.createElement("option");
  oOption.appendChild(document.createTextNode(text));
  oOption.setAttribute("value", value);

  if (isDefaultSelected) oOption.defaultSelected = true;
  else if (isSelected) oOption.selected = true;

  oListbox.appendChild(oOption);
}

Пример использования:

Код:
var objSel = document.getElementById("mySelect");
addOption(objSel, "текст", "значение", true);

И на последок о некоторых особенностях IE :-) В IE 5+ исключена (ввиду нестабильной работы) возможность добавления элемента списка через new Option(), когда сам список SELECT находится в одном документе (окне, фрейме), а элементы добавляются из другого документа (окна, фрейма), например, если SELECT в родительском окне, а добавить элементы нужно из дочернего окна, открытого через window.open(). Используя DOM-методы вы сможете обойти данную проблему. Более подробно о данной проблеме...
Доступ к элементам списка

Код:
var text  = objSel.options[2].text;
var value = objSel.options[2].value;

Элементы списка в массиве options индексируются с нуля, поэтому первый элемент списка имеет индекс 0:

Код:
objSel.options[0] - первый элемент списка.
objSel.options[objSel.options.length-1] - последний элемент списка
Изменение элемента списка

objSel.options[1].text = "Новый текст";
objSel.options[1].value = "новое значение";

objSel.options[2] = new Option("Новый текст", "новое значение");//полная замена элемента на новый

Как узнать какой элемент выбран и как выбрать нужный элемент?

У объекта элемента SELECT существует свойство selectedIndex, которое содержит индекс выделенного элемента, или -1 если нет выделенных элементов.

Код:
if ( objSel.selectedIndex != -1)
{
  //Если есть выбранный элемент, отобразить его значение (свойство value)
  alert(objSel.options[objSel.selectedIndex].value);
}

Здесь хочу заметить, что возможен выбор нескольких значений в списке, для этого нужно указать свойство multiple в теге SELECT и указать количество видимых без прокрутки списка элементов через атрибут size (т.е. установить высоту списка измеряемую в видимых элементах), например, разметка <select size="3" multiple>...</select> создаст список высотой в 3 элемента, в котором разрешено выбирать несколько элементов сразу. Если вы указываете size больше 1, то список перестает быть выпадающим, а изменяет вид на обычный блок с полосой прокрутки (она доступка при необходимоти). Свойство size можно указывать и без multiple.

В случае когда доступен множественный выбор элементов, данное свойство содержит индекс первого выделенного в списке элемента (т.е. того элемента который в списке находиться выше). Чтобы в данном случае найти все выделенные элементы нужно перебрать в цикле все элементы массива options и проверить их свойство selected, которое равно true у выделенных элементов:
Код:

function getSelectedIndexes (oListbox)
{
  var arrIndexes = new Array;
  for (var i=0; i < oListbox.options.length; i++)
  {
      if (oListbox.options[i].selected) arrIndexes.push(i);
  }
  return arrIndexes;
};

Функция getSelectedIndexes принимает в качестве аргумента объект списка и возвращает массив индексов выделенных элементов.

Пример использования (отображение индексов выделеных элементов):

Код:
var objSel = document.getElementById("mySelect");
 
alert ( getSelectedIndexes(objSel) );

Описанные свойства selectedIndex и selected являются свойствами как для чтения так и для записи, поэтому присваивая им значения можно выделять нужные элементы.

Код:
//выбрать (выделить) второй элемент списка
objSel.selectedIndex = 1;
//или так
objSel.options[1].selected=true;

Для выбора нескольких элементов (при установленном свойстве multiple) нужно установить свойство selected=true для всех нужных элементов:

Код:
//выбрать (выделить) 1 и 3 элементы списка
objSel.options[0].selected=true;
objSel.options[2].selected=true;

Следует обратить внимание на баг в браузере Opera, проявляющийся при динамическом заполнении списка через скрипт и последующей установке выделенного пункта через свойство selectedIndex или selected. Баг проявляется в добавлении пустых элементов в список, доступ к которым из скрипта не возможен (скрипт их не видит, зато пользователь видит и может их выбрать). Эти пустые лже-элементы списка появляются после установки свойства selectedIndex или selected. Для обхода этой ошибки в Opera используйте установку этих свойств через setTimeout с задержкой в 1мс:

Код:
var objSel = document.getElementById("mySelect");

//Динамически создаем элементы списка
objSel.options[0] = new Option("Строка списка 0", "str0");
objSel.options[1] = new Option("Строка списка 1", "str1");

//Выделяем второй элемент списка
setTimeout( function(){objSel.options[1].selected=true;}, 1 );

Удаление i-го элемента списка

Код:
objSel.options[1] = null; //удалить элемент списка с индексом 1 (второй элемент списка)

Или используя DOM метод remove:

Код:
oListbox.remove(0); //удалить первый элемент списка

Как очистить список SELECT (как удалить все элементы списка)?

Для этого можно установить свойство length в ноль:

Код:
objSel.options.length = 0;

Либо вызвать DOM метод remove для каждого элемента списка:

Код:
function clearSelect(oListbox)
{
  for (var i=oListbox.options.length-1; i >= 0; i--)
  {
      oListbox.remove(i);
  }
};

Как сдвинуть элемент списка вверх или вниз

Код:
function shiftUpOption (oListbox, iIndex)
{
  if (iIndex > 0)
  {
    var oOption = oListbox.options[iIndex];
    var oPrevOption = oListbox.options[iIndex-1];
    oListbox.insertBefore(oOption, oPrevOption);
  }
};

function shiftDownOption (oListbox, iIndex)
{
  if (iIndex < oListbox.options.length - 1)
  {
    var oOption = oListbox.options[iIndex];
    var oNextOption = oListbox.options[iIndex+1];
    oListbox.insertBefore(oNextOption, oOption);
  }
};

Примеры:

Код:
var objSel = document.getElementById("mySelect");
shiftDownOption (objSel, 1); //переместить второй элемент списка (с индектом 1) на первую позицию (с индексом 0)

Динамические связанные списки Select - взгляд изнутри

Ну что же, теперь вы знаете достаточно, чтобы выполнить практически любую задачу связанную с элементом SELECT и Javascript, а так же понять пример реализации задачи, поставленной в самом начале статьи. Как выглядит готовое, работающее решение показано в самом верху, а как это выглядит изнутри смотрите...

Код:
<html>
  <head>
  <title>Связанные селекты</title>
 
  <!-- Подключаем javascript-библиотеку функций -->
  <script type="text/javascript" src="linkedselect.js"></script>
</head>

<body>

<!-- Первый (главный) список (изначально заполнен вручную) -->
  <select size="4" id="List1">
    <option value="ie"> Internet Explorer </option>
    <option value="safari"> Safari </option>
  </select>
 
<!-- Подчиненный список 1 (изначально пуст) -->
  <select size="4" id="List2"></select>
 
<!-- Подчиненный список 2 (изначально пуст) -->
  <select size="4" id="List3"></select>
 
<script type="text/javascript">
// Создаем новый объект связанных списков
var syncList1 = new syncList;

// Определяем значения подчиненных списков (2 и 3 селектов)
syncList1.dataList = {

/* Определяем элементы второго списка в зависимости
от выбранного значения в первом списке */

  'ie':{
      'ie_win':'Windows',
      'ie_mac':'Mac'
  },
 
  'safari':{
      'safari_mac':'Mac'
  },

/* Определяем элементы третьего списка в зависимости
от выбранного значения во втором списке */

  'ie_win':{
      'ie_win_5':'версия 5',
      'ie_win_6':'версия 6'
  },
 
  'ie_mac':{
      'ie_mac_5':'версия 5'
  },
 
  'safari_mac':{
      'safari_mac_1':'версия 1',
      'safari_mac_2':'версия 2'
  }
};

// Включаем синхронизацию связанных списков
syncList1.sync("List1","List2","List3");
</script>

</body>
</html>

Давайте разберем страницу. Первым делом в разделе head подключаем библиотеку linkedselect.js, которая определяет класс объектов syncList и собственно выполняет синхронизацию. Далее в теле документа (внутри тэга body) определяем HTML списки SELECT. Причем первый список (List1) уже содержит нужные значения (тэги option) , а два других (List2, List3), которые должны заполняться динамически, изначально пусты. Затем создаем объект связанного списка: var syncList1 = new syncList, и заполняем его свойство syncList1.dataList данными для пустых списков List2 и List3 (надеюсь, что разукрашенный код и комментарии позволят понять, как dataList-объект формируется). Ну и последний шаг, это запуск синхронизации - вызов метода syncList1.sync(). Данный метод принимает в качестве аргументов id селектов, которые нужно синхронизировать между собой, их может быть 2 и более (в нашем случае 3). Имейте в виду, что порядок следования аргументов важен и определяет подчиненность селектов (главный вначале, подчиненные за ним). Так же замечу, что создавать объект syncList и заполнять его данными можно и до определения самих селектов тэгами HTML (например, в разделе head документа), главное чтобы селекты уже были в документе на момент вызова метода syncList.sync().

Посмотреть профиль http://forexsoft.gip-gip.com

Предыдущая тема Следующая тема Вернуться к началу  Сообщение [Страница 1 из 1]

Права доступа к этому форуму:
Вы не можете отвечать на сообщения

 
  •  

Бесплатные форумы | © PunBB | Бесплатный форум поддержки | Контакты | Сообщить о нарушении | Создать блог