Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 14.09.2008
Сообщений: 25

Можно ли сделать невидимым option(item) в combobox?

08.07.2009, 11:37. Показов 2550. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Можно ли сделать невидимым option(item) в combobox?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.07.2009, 11:37
Ответы с готовыми решениями:

Сделать невидимым или удалить ComboBox
Подскажите пожалуйста, можно ли в WinApi удалить комбобокс или сделать его невидимым? Я пока только нашел CB_SHOWDROPDOWN, но у меня что...

Можно ли текст в <textarea> сделать невидимым так, чтоб курсор остался?
Подскажите, пожалуйста, можно ли текст в &lt;textarea&gt; сделать невидимым так, чтоб курсор остался?

ComboBox Add Item
Здравствуйте! Как программно добавлять итемы в ComboBox'е?

4
0 / 6 / 0
Регистрация: 02.07.2009
Сообщений: 39
08.07.2009, 17:19
Можно. К сожалению, Вы не указали для каких браузеров это нужно. Есть красивое решение для MSIE 5+ на основе behaviors. Если нужно для NN4+/MSIE4+ - напишите. Там это тоже делается, но не так красиво.

Пример для MSIE ищите в своем почтовом ящике.
0
4 / 4 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
08.07.2009, 22:18
AsperDaffy - дружище, форум , а тем - более такой как этот, на котором мы сейчас с тобой, предусматривает помощь нуждающемуся, а если ты всё будешь по почте слать -вся идея форума летит в ....
0
0 / 6 / 0
Регистрация: 02.07.2009
Сообщений: 39
09.07.2009, 00:25
to: sl_play

Да, ты прав.

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

Исправляю свою ошибку.

Для того, чтобы запустить обещанный пример (MSIE 5+) нужно создать два файла sample.htm и dynamicSelect.htc. Создавать их следует в одном фолдере. Далее загружаем sample.htm в браузер. Все пояснения даны в комментариях в самих файлах.

Содержимое файла sample.htm:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<html>
<head>
<style type='text/css'>
/*
    Ýëåìåíò SELECT ìîæåò èìåòü ëþáûå ñòèëè, íî òå, ÷òî
    çäåñü ïðèâåäåíû - îáÿçàòåëüíû.
    
    Èçíà÷àëüíî ýëåìåíò îáúÿâëÿåòñÿ íåâèäèìûì ïîòîìó, ÷òî
    â ïðîòèâíîì ñëó÷àå íà ýêðàíå óñïåþò ìåëüêíóòü âñå 
    îïöèè ïðåæäå, ÷åì ìû ñäåëàåì íåâèäèìûìè ÷àñòü èç íèõ
*/      
.dynamicSelect {
    behavior: url(dynamicSelect.htc);
    visibility: hidden;
}
</style>
<title>Sample for Olya</title>
</head>
<body>
<!--
    Ñðàçó ïî çàãðóçêå ñòðàíèöû, âèäèìûìè áóäóò îïöèè ¹¹ 2,4,5
-->
<select id='mySel' class='dynamicSelect'>
    <option hidden='yes'>Option #1
    <option>Option #2
    <option hidden='1'>Option #3
    <option id='opt'>Option #4
    <option>Option #5
</select>
<p>
 
<!--
    Ýòà êíîïêà äåìîíñòð&;#235;üíîì ìàññèâå îïöèé (ñ÷èòàÿ ñ íóëÿ)
    Åñëè ïàðàìåòð - ñòðîêà, òî ïîäðàçìåâàåòñÿ, ÷òî ýòî àòðèáóò ID
    ýëåìåíòà OPTION
    
showOption(<option>,<ShowOrHide>)
   Ïîêàçûâàåò èëè ñêðûâàåò îïöèþ â çàâèñèìîñòè îò âòîðîãî ïàðàìåòðà.
    Ïåðâûé ïàðàìåòð òàêîé æå, êàê è ó ïðåäûäóùåãî ìåòîäà.
    Åñëè âòîðîé ïàðàìåòð true - îïöèÿ ïîêàçûâàåòñÿ, åñëè false - ñêðûâàåòñÿ.
 
-->
<public:attach event='oncontentready' for='element' handler='doOnContentReady'/>
<public:method name='showOption'/>
<public:method name='isOptionHidden'/>
 
<script language='JavaScript'>
/*
    Îáðàáîò÷èê ñîáûòèÿ
*/
function doOnContentReady() {
    var len = options.length;
    element.allTheOptions = new Array(len);
    for (var i=0; i<len; i++) {
        var o = options[i];
        var attVal = o.getAttribute('hidden');
        o.iAmHidden = (typeof(attVal)=='string')&&(attVal.toLowerCase()=='yes'||attVal=='1');
        allTheOptions[i] = o;
    }
    hideOptions();
    style.visibility = 'visible';
}
 
/*
    Ìåòîä showOption
*/
function showOption(optId,showHide) {
    optId = findOption(optId);
    if (optId==null) return;
    allTheOptions[optId].iAmHidden = !showHide;
    hideOptions();
}
 
/*
    Ìåòîä isOptionHidden
*/
function isOptionHidden(optId) {
    optId = findOption(optId);
    if (optId==null) return null;
    return allTheOptions[optId].iAmHidden;
}
 
/*
    Ïàðà ôóíêö
0
0 / 6 / 0
Регистрация: 02.07.2009
Сообщений: 39
09.07.2009, 00:29
О, НЕТ!!!!!!!!!!!! Что он сделал с комментариями!!!

Жаль, что нельзя удалить сообщение.

Попробую еще раз. Вы уж простите меня :-(

Содержимое файла sample.htm:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<html>
<head>
<style type='text/css'>
/*
   Элемент SELECT может иметь любые стили, но те, что
   здесь приведены - обязательны.
   
   Изначально элемент объявляется невидимым потому, что
   в противном случае на экране успеют мелькнуть все 
   опции прежде, чем мы сделаем невидимыми часть из них
*/      
.dynamicSelect {
   behavior: url(dynamicSelect.htc);
   visibility: hidden;
}
</style>
<title>Sample for Olya</title>
</head>
<body>
<!--
   Сразу по загрузке страницы, видимыми будут опции №№ 2,4,5
-->
<select id='mySel' class='dynamicSelect'>
   <option hidden='yes'>Option #1
   <option>Option #2
   <option hidden='1'>Option #3
   <option id='opt'>Option #4
   <option>Option #5
</select>
<p>
 
<!--
   Эта кнопка демонстрирует работу методов showOption и isOptionHidden 
   (описания см. в файле dynamicSelect.htc) с параметром - индексом
   нужной опции.
-->
<button onclick='mySel.showOption(0,mySel.isOptionHidden(0))'
>Switch option #0 state</button>
<p>
 
<!--
   Эта кнопка демонстрирует работу методов showOption и isOptionHidden 
   (описания см. в файле dynamicSelect.htc) с параметром - ID нужной опции.
-->
<button onclick='mySel.showOption('opt',mySel.isOptionHidden('opt'))'
>Switch option id='opt' state</button>
 
</body>
</html>
Содержимое файла dynamicSelect.htc:
[code]
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<!--
Здесь обрабатывается событие 'oncontentready' - прячутся все ненужные опции.
Также, определены два метода:
 
isOptionHidden(<option>)
   Возвращает true, если опция спрятана, false - если видима
   и, наконец, null - если такой опции нет вовсе.
   Параметр задает опцию. 
   Если параметр - число, то подразумевается
   индекс в изначальном массиве опций (считая с нуля)
   Если параметр - строка, то подразмевается, что это атрибут ID
   элемента OPTION
   
showOption(<option>,<ShowOrHide>)
   Показывает или скрывает опцию в зависимости от второго параметра.
   Первый параметр такой же, как и у предыдущего метода.
   Если второй параметр true - опция показывается, если false - скрывается.
 
-->
<public:attach event='oncontentready' for='element' handler='doOnContentReady'/>
<public:method name='showOption'/>
<public:method name='isOptionHidden'/>
 
<script language='JavaScript'>
/*
   Обработчик события
*/
function doOnContentReady() {
   var len = options.length;
   element.allTheOptions = new Array(len);
   for (var i=0; i<len; i++) {
      var o = options[i];
      var attVal = o.getAttribute('hidden');
      o.iAmHidden = (typeof(attVal)=='string')&&(attVal.toLowerCase()=='yes'||attVal=='1');
      allTheOptions[i] = o;
   }
   hideOptions();
   style.visibility = 'visible';
}
 
/*
   Метод showOption
*/
function showOption(optId,showHide) {
   optId = findOption(optId);
   if (optId==null) return;
   allTheOptions[optId].iAmHidden = !showHide;
   hideOptions();
}
 
/*
   Метод isOptionHidden
*/
function isOptionHidden(optId) {
   o
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.07.2009, 00:29
Помогаю со студенческими работами здесь

Блокировка Item у ComboBox
Всем доброе время суток! Подскажите пожалуйста, каким образом можно заблокировать(IsEnabled, ReadOnly) Item у ComboBox по индексу..?

Можно ли сделать в ComboBox две колонки?
Можно ли сделать в ComboBox две колонки? Это надо для того, чтобы в поле первой колонки можно было загрузить данные(например id) с внешнего...

Установить нужный Item в ComboBox
Сижу туплю ужасно, не пойму как установить нужный мне Item в ComboBox. Допустим в ComboBox несколько Item'ов: 1 2 3 4 Как сделать...

Проверка Combobox на наличие Item
Здравствуйте. Подскажите пожалуйста. После осуществления в коде удаления всех Item методом Combobox.Item.Clear() происходит вызов метода ...

Можно ли сделать удаление из combobox по отмеченным checkbox?
В combox1 есть список слов(5 слов),возможно ли сделать так,чтобы при нажатии &quot;Удалить&quot; в combobox2,удалялись элементы c combobоx1...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Квантовые алгоритмы и обработка строк в Q#
EggHead 07.06.2025
Квантовые вычисления перевернули наше представление о том, как работать с данными, а Q# стал одним из ключевых языков для разработки квантовых алгоритмов. В традиционых системах мы оперируем битами —. . .
NUnit и C#
UnmanagedCoder 07.06.2025
В . NET существует несколько фреймворков для тестирования: MSTest (встроенный в Visual Studio), xUnit. net (более новый фреймворк) и, собственно, NUnit. Каждый имеет свои преимущества, но NUnit. . .
с++ Что нового?
russiannick 06.06.2025
Продолжаю обзор dev-cpp5. 11. Посмотрев на проекты, предоставленные нам для обучения, становится видно, что они разные по содержащимся файлам где: . dev обязательно присутствует . cpp/ . c один из них. . .
WebAssembly в Kubernetes
Mr. Docker 06.06.2025
WebAssembly изначально разрабатывался как бинарный формат инструкций для виртуальной машины, обеспечивающий высокую производительность в браузерах. Но потенциал технологии оказался гораздо шире - она. . .
Как создать первый микросервис на C# с ASP.NET Core, step by step
stackOverflow 06.06.2025
Если говорить простыми словами, микросервисная архитектура — это подход к разработке, при котором приложение строится как набор небольших, слабо связанных сервисов, каждый из которых отвечает за. . .
Рисование коллайдеров Box2D v2 на Three.js с помощью порта @box2d/core
8Observer8 06.06.2025
Используется порт Box2D v2 под названием @box2d/ core - пакет NPM. Загрузил документацию Box2D v2 на Netlify: https:/ / box2d-v2-docs. netlify. app/ Документацию Box2D v2 можно скачать с официального. . .
Как создать стек в Python
AI_Generated 05.06.2025
Как архитектор с более чем десятилетним опытом работы с Python, я неоднократно убеждался, что знание низкоуровневых механизмов работы стеков дает конкурентное преимущество при решении сложных задач. . . .
Server-Sent Events (SSE) в Node.js
run.dev 05.06.2025
Потоковая передача данных с сервера прямо в браузер стала повседневной потребностью - от биржевых графиков и спортивных трансляций до чатов и умных дашбордов. Много лет разработчики полагались на. . .
Создаем RESTful API на Golang с Fiber
golander 04.06.2025
Я перепробовал десятки фреймворков для создания RESTful API за последние годы, и когда впервые столкнулся с Fiber, понял, что это совсем другой уровень. Нет, я не собираюсь рассказывать сказки о. . .
Как работать с куки в ASP.NET Core
UnmanagedCoder 04.06.2025
Когда я впервые начал работать с куки в ASP. NET Core, меня поразило, насколько отличается работа с ними от классического ASP. NET. В Core все стало более декомпозированным - больше нет удобного. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
OSZAR »