﻿<?xml version='1.0' encoding='UTF-8'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Релиб / Веб-программирование / Веб-программирование  / Цвет выделения в select multiple / Latest Posts</title><generator>InstantForum.NET v4.1.4</generator><description>Релиб</description><link>http://www.relib.com/forums/</link><webMaster>robot@relib.com</webMaster><lastBuildDate>Fri, 21 Nov 2008 21:05:31 GMT</lastBuildDate><ttl>20</ttl><item><title>RE: Цвет выделения в select multiple</title><link>http://www.relib.com/forums/Topic908112-9-1.aspx</link><description>ну как как, елементарно ) создаешь в форме скрытое поле, в тот скрипт добавляешь изменение значения этого скрытого поля на значение поселекченого опшна, имя скрытого поля делаешь таким каким раньше было имя селекта, и все - нужные данные передадутся при сабмите.&lt;/P&gt;&lt;P&gt;А если тебе нужен именно выбранный индекс для еще каких то скриптов, ну тоже не проблема - либо делаешь глобальную переменную и в нее сохраняешь, либо тоже скрытое поле, присваиваешь его значение индекс выбранного и пользуешься.&lt;/P&gt;&lt;P&gt;Мигание, ну да, но не так оно и заметно, в принципе )</description><pubDate>Thu, 30 Nov 2006 12:12:05 GMT</pubDate><dc:creator>DarkSet</dc:creator></item><item><title>RE: Цвет выделения в select multiple</title><link>http://www.relib.com/forums/Topic908112-9-1.aspx</link><description>ха. как же мне работать без selectedIndex?) да и моргание тоже не плюс. странно что нельзя поменять цвет стандартным подходом. ладно, спасибо большое и за это)</description><pubDate>Thu, 30 Nov 2006 11:28:03 GMT</pubDate><dc:creator>nighthunter</dc:creator></item><item><title>RE: Цвет выделения в select multiple</title><link>http://www.relib.com/forums/Topic908112-9-1.aspx</link><description>Я его сделал! )&lt;/P&gt;&lt;P&gt;function sselect(j) //переменная - номер выделенного опшна&lt;BR&gt;{&lt;BR&gt;window.document.getElementById("sel").selectedIndex=-1; //отменяет системное выделение - для системы больше нет выделенных елементов!&lt;BR&gt;for (var i=(window.document.getElementById("sel").options.length-1); i&amp;gt;=0; i--) //идем по всем опшнам&lt;BR&gt; {&lt;BR&gt;  window.document.getElementById("sel").options[i].style.cssText="background-color:inherit"; //убираем стиль фона который был&lt;BR&gt;  if (i==j) //если тот елемент что выбран&lt;BR&gt;  {&lt;BR&gt;   window.document.getElementById("sel").options[i].style.cssText="background-color:red"; //то ставим наш фон&lt;BR&gt;  }&lt;BR&gt; }&lt;BR&gt;}&lt;/P&gt;&lt;P&gt;Правда на какую то долю секунды системное выделение все равно проскакивает ). Главное - не забыть что после этих манипуляций для системы выделенных елементов больше нет, так что если ты попробуешь отправить данные формы не обработав выделение вручную то от селекта этого ничего не пошлется.</description><pubDate>Wed, 29 Nov 2006 18:44:23 GMT</pubDate><dc:creator>DarkSet</dc:creator></item><item><title>RE: Цвет выделения в select multiple</title><link>http://www.relib.com/forums/Topic908112-9-1.aspx</link><description>да, не elements я описался - не туда глянул в доке ) но и не item а options&lt;P&gt;ДЕйствительно фильтры не применяются ни к селекту вцелом ни к опшнам в частности, но в принципе я посмотрел - опшну можно поставить стиль цвета и фона отдельно от других опшнов.&lt;/P&gt;&lt;P&gt;Вот, скрипт выделяет то что нам надо нужным бекграундом, при желании в строку можно добавить любое выделение стилями. Единственное чего не хаватает - не убирается системное выделение, потому все зря :). Не знаю пока как системное выделение убрать.&lt;/P&gt;&lt;P&gt;function sselect(j) //переменная - номер выделенного опшна&lt;BR&gt;{&lt;BR&gt;for (var i=(window.document.getElementById("sel").options.length-1); i&amp;gt;=0; i--) //идем по всем опшнам&lt;BR&gt; {&lt;BR&gt;  window.document.getElementById("sel").options[i].style.cssText="background-color:inherit"; //убираем стиль фона который был&lt;BR&gt;  if (i==j) //если тот елемент что выбран&lt;BR&gt;  {&lt;BR&gt;   window.document.getElementById("sel").options[i].style.cssText="background-color:red"; //то ставим наш фон&lt;BR&gt;  }&lt;BR&gt; }&lt;BR&gt;}&lt;P&gt;sel - ID нашего селекта</description><pubDate>Wed, 29 Nov 2006 18:11:59 GMT</pubDate><dc:creator>DarkSet</dc:creator></item><item><title>RE: Цвет выделения в select multiple</title><link>http://www.relib.com/forums/Topic908112-9-1.aspx</link><description>не получается.&lt;br&gt;я поменял elements на options так как совсем ничего не работало.&lt;br&gt;&lt;br&gt;и в style жестко пробовал прописать - не получилось.&lt;br&gt;&lt;br&gt;option class="ch_" style="filter:mask(color=green)"&lt;br&gt;&lt;br&gt;даже в хинтах не нашел filter.</description><pubDate>Wed, 29 Nov 2006 16:12:31 GMT</pubDate><dc:creator>nighthunter</dc:creator></item><item><title>RE: Цвет выделения в select multiple</title><link>http://www.relib.com/forums/Topic908112-9-1.aspx</link><description>попробуй применить фильтр, либо&lt;P&gt;object.style.filter="invert()" - инвертирует цвета, либо&lt;/P&gt;&lt;P&gt;object.style.filter="mask(color=green)" - параметр - цвет фона, цвет текста станет белым.&lt;P&gt;А, ну да, я понял проблему, ты наверное не метод хайлайта не знаешь а как его применить :)&lt;P&gt;Значит нужно на он клик селекта поставить скрипт которые сначала отменит все предыдущие хайлайты, то есть если ты используешь фильтр как я выше написал то ко всем вложенным елементам применить object.style.filter="none". Дальше надо нужный нам елемент отхайлайтить.&lt;P&gt;Возникает вопрос - как это все сделать? И тут нам поможет то что селект по своей сути является массивом содержащим группу опшнов. Обращение: &lt;P&gt;selectName.elements[i] - получаем объект елементов. Соответственно описанная словами выше функция будет иметь вид:&lt;P&gt;function sselect(index) //переменная - номер выделенного опшна&lt;BR&gt;{&lt;BR&gt; for (var i=selectName.elements.length-1; i&amp;gt;0; i--) //идем по всем опшнам селекта, с конца в начало&lt;BR&gt; {&lt;BR&gt;  selectName.elements[i].style.filter="none"; //отменяем фильтр который был&lt;BR&gt;  if (i==index) //если текущий елемент - тот что мы должны выделить то&lt;BR&gt;  {&lt;BR&gt;   selectName.elements[i].style.filter="mask(color=green)" //выделяем фильтром&lt;BR&gt;  }&lt;BR&gt; }&lt;BR&gt;}</description><pubDate>Wed, 29 Nov 2006 13:15:09 GMT</pubDate><dc:creator>DarkSet</dc:creator></item><item><title>RE: Цвет выделения в select multiple</title><link>http://www.relib.com/forums/Topic908112-9-1.aspx</link><description>Так вот меня и интересует каким образом хайлайтить.&lt;br&gt;Все остальное работает, т.е. я перехватываю событие onfocus, и получаю индекс элемента.</description><pubDate>Wed, 29 Nov 2006 12:53:57 GMT</pubDate><dc:creator>nighthunter</dc:creator></item><item><title>RE: Цвет выделения в select multiple</title><link>http://www.relib.com/forums/Topic908112-9-1.aspx</link><description>Чесно говоря никогда не встречал возможности сменить цвет выделения, нигде. Даже в самой винде сменить этот цвет вроде нельзя. Хотя это и странно.&lt;/P&gt;&lt;P&gt;Если возможность изменить это какой то опцией есть было бы тоже интересно ее узнать.&lt;/P&gt;&lt;P&gt;Ну а если делать через функции то нужно:&lt;/P&gt;&lt;P&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/ms536969.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms536969.aspx&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/ms536967.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms536967.aspx&lt;/A&gt; &lt;/P&gt;&lt;P&gt;это о том как перехватывать действие селекта. Дальше берем и то что выделено селектим: &lt;/P&gt;&lt;P&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/ms536735.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms536735.aspx&lt;/A&gt; &lt;/P&gt;&lt;P&gt;а потом до кучи хайлайтим по своему, учитывая системный селект.&lt;/P&gt;&lt;P&gt;Способ конечно сложный, даже не знаю стоит ли овчинка выделки.</description><pubDate>Tue, 28 Nov 2006 16:31:34 GMT</pubDate><dc:creator>DarkSet</dc:creator></item><item><title>RE: Цвет выделения в select multiple</title><link>http://www.relib.com/forums/Topic908112-9-1.aspx</link><description>пробовал&lt;br&gt;&lt;br&gt;option:focus{&lt;br&gt;	background-color:#00FF00;&lt;br&gt;}&lt;br&gt;&lt;br&gt;не получилось(</description><pubDate>Tue, 28 Nov 2006 15:24:31 GMT</pubDate><dc:creator>nighthunter</dc:creator></item><item><title>Цвет выделения в select multiple</title><link>http://www.relib.com/forums/Topic908112-9-1.aspx</link><description>Вопрос: как поменять цвет выделения в select'е с стандартного темно-синего на другой?</description><pubDate>Tue, 28 Nov 2006 12:43:17 GMT</pubDate><dc:creator>nighthunter</dc:creator></item></channel></rss>