powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / select multiple
9 сообщений из 9, страница 1 из 1
select multiple
    #38827149
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужен комоокс с возможностью множественного выора

Написал так:

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
<select multiple="multiple" id="category" >
       <option value="0">Forex</option>
	<option value="0">Entertainment</option>
	<option value="0">Food Sale</option>
	<option value="0">Tourism</option>
	<option value="0">Hobby</option>
	<option value="0">Science</option>
</select>



получилось то что на карт инку во вложении - квдратик с четырьмя строками

а мне надо чтоб была одна строка и список открывался к низу при клике(но и множественный выбор тоже)

Как это сделать
...
Рейтинг: 0 / 0
select multiple
    #38827159
JeStone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Areostar,
Если не ошибаюсь, то без извращений такого не сделать. Как вариант можно использовать jQuery UI Controls
http://www.igniteui.com/combo/selection-and-checkboxes
...
Рейтинг: 0 / 0
select multiple
    #38827220
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. Почитаю
...
Рейтинг: 0 / 0
select multiple
    #38827861
Фотография -k2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
select multiple
    #38827875
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
... ну чем людям не нравятся чек-боксы? ...
...
Рейтинг: 0 / 0
select multiple
    #38827878
Фотография -k2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
carrotik,

да ладно, чойзен симпатичная и компактная малютка :)
...
Рейтинг: 0 / 0
select multiple
    #38851266
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
carrotik... ну чем людям не нравятся чек-боксы? ...

А ссылочку можно?
...
Рейтинг: 0 / 0
select multiple
    #38851517
Фотография user89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Areostar,

работает в нормальных браузерах и IE9+. Использование: диву ставим класс= CheckCombobox и внутри просто перечисляем значения через запятую.
http://jsfiddle.net/r4rq6cpv/
...
Рейтинг: 0 / 0
select multiple
    #38863560
Фотография user89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Более улучшенный вариант с прокруткой. Также добавлена функция "Выделить всё"
Код: html
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.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
<!DOCTYPE html>
<html>
<head>
<title>CheckCombobox</title>
<style>
* {margin:0; padding:0;}
.CheckCombobox {
	background:#fff;
	font:8pt Verdana,Arial,'MS Sans Serif','sans-serif';
	width:150px;
}
.CheckCombobox .DivForInput {
	margin:0;
	padding:0 0 0 4px;
	height:19px;
	overflow:hidden;
	border:1px solid #B5B8C8;
}
.CheckCombobox .DivForInput input {
	font:8pt Verdana,Arial,'MS Sans Serif','sans-serif';
	margin:0; padding:0; border:0;
	outline:none;
	height:19px;
	line-height:18px;
	float:left;
}
.cmdList {
	background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAUCAIAAAAP9fodAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAOJJREFUOE+9kEEKgmAQhes4LSJcBh0hqluVxwk6QttKCoNUcFtp4kJFd73XkPymLYagh8w/vnnfP2h/vdlOxoOeVsAeevV+xWKNuC3Si9jdkKyM4rj25NV0MGpg+DVlWVZVhYoe47Yj1xG7vYSXoiishT2cLkezFcgkSVDRw4GPKTISJnZ9C99Y55DGWmHkFkzrJLGLoTAM8zyXtDzo4cA3Y8TOTQVBkGVZvQc9HDPiui4xHB/yfZLW3EZF3w4QO3XJ87w0TVE7p8SOX4QlnRPHcYjh0IrYQS9ie72I7fT6L/YELEZQH9hMDiwAAAAASUVORK5CYII=') no-repeat 0 0;
	width:18px;
	height:20px;
	cursor:pointer;
	float:right;
}
.CheckCombobox .CheckCont {position:absolute;	margin-top:-9999px;}
.CheckCombobox .CheckContFocused {
	display:block;
	position:absolute;
	margin-top:-1px;
	z-index:2;
	background:#fff;
	border:1px solid #B5B8C8;
	outline:none;
	white-space:nowrap;
	overflow-y:auto;
	overflow-x:hidden;
}
.CheckCombobox .CheckTable {border-collapse:collapse;}
.CheckCombobox td {padding:5px !important;}
.CheckCombobox input[type="checkbox"] {position:absolute;	left:-9999px;}
.CheckCombobox input[type="checkbox"] + a {
	padding-left:16px;
	background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAIAAAD9iXMrAAAACXBIWXMAAAsSAAALEgHS3X78AAAAYklEQVQoz43RsQ2AQAwDQMfOGmzANBT0jEJLyUKsRsFDvsHgLtLFUpQYphU/kgCObb4GtkhKSZkpidS47Hw23hBJAPxEpJrzqPo86p1D5TzqnUMRt/MoIqrPo7rDIwDx878ncvgH6gjXVecAAAAASUVORK5CYII=') no-repeat;
}
.CheckCombobox input[type="checkbox"]:checked + a {
	background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAIAAAD9iXMrAAAACXBIWXMAAAsSAAALEgHS3X78AAAAnElEQVQoz43ROwoCMRAG4P/hNbyAnQiCWHgFEQsLwbN4gz2KjY29pYgIeh2LCUl0d2WnCCT5MpNMON4cMSBGAK7NPiakImxLjlHS5NAon+hDkgDoD5qeZrGWXB8CECmTC7S8rH5QbJEszjaA+XlRo/fuRbLkixyx10ZkqWvb9/Utv71GpW5uwXP7aKP6fqlPkjvR13tDdyIAHPi/H8GqHHTeOs1YAAAAAElFTkSuQmCC') no-repeat;
}
</style>
</head>
<body onload="SetCheckCombobox();">
<div style="margin:5px;">DIV просто так</div>
<br>
<table><tr>
	<td>&#160; &#160; &#160; &#160; &#160; &#160;</td>
	<td> <div class="CheckCombobox">Исполнение,Поддержка,Управление карьерой подчинённых,Участие в наборе персонала,Строка 1,Строка 2,Строка 3,Строка 4</div> </td>
	<td>&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;</td>
	<td> <div class="CheckCombobox" id="ProjStatus">Open,Closed,On hold</div> </td>
	<td>&#160; <button onclick="SelectAllCheckContClick(gid('ProjStatus'))">Выделить всё</button> </td>
</tr></table>
<br>
<div style="margin:5px;">DIV просто так</div>

<script>
function gid(idx) {return document.getElementById(idx);}

function GetScrollWidth() {
	var div = document.createElement('div');
	div.style.overflowY = 'scroll';
	div.style.width = '50px'; div.style.height = '50px';
	div.style.visibility = 'hidden';
	document.body.appendChild(div);
	var sw = div.offsetWidth - div.clientWidth;
	document.body.removeChild(div);
	return sw;
}
var ScrollWidth = GetScrollWidth();


function SetCheckCombobox() {
	var d = document.getElementsByClassName('CheckCombobox');
	for (i=0; i < d.length; i++) {
		var s = '<div class="DivForInput"> <input type="text" readonly> <div class="cmdList" onclick="ShowCheckCont(this);"></div> </div>' +
		'<div class="CheckCont">' +
		'<table class="CheckTable"><tbody>' +
		'<tr><td> <label><input type="checkbox" onclick="SelectAllCheckCont(this);"><a>(Выделить всё)</a></label> </td></tr>';
		var arr = d[i].innerHTML.split(',');
		for (j=0; j < arr.length; j++) {s = s + '<tr><td> <label><input type="checkbox" onclick="GetJoinStringCheckCont(this)"><a>' + arr[j] + '</a></label> </td></tr>';}
		s = s + '</tbody></table></div>';
		d[i].innerHTML = s;
		d[i].children[0].style.width = d[i].offsetWidth - 4 + 'px';
		d[i].children[0].children[0].style.width = d[i].offsetWidth - 25 + 'px';

		var el = d[i].children[1]; // Тот самый выпающий список
		el.style.minWidth = d[i].offsetWidth + 'px';
		el.style.maxHeight = '200px';

		if (el.offsetHeight < el.scrollHeight) {el.style.width = el.offsetWidth + ScrollWidth + 'px';}

		// Добавим события к выпадающему списку
		el.addEventListener('focus', onCheckContFocus, true);
		el.addEventListener('blur', onCheckContBlur, true);
	}
}

function SelectAllCheckContClick(el) {
	var chk = el.children[1].children[0].children[0].children[0].children[0].children[0].children[0];
	chk.checked = true;
	SelectAllCheckCont(chk);
}

function SelectAllCheckCont(el) {
	var rows = el.parentNode.parentNode.parentNode.parentNode.parentNode.rows;
	for (j=1; j < rows.length; j++) {rows[j].cells[0].children[0].children[0].checked = el.checked;}
	GetJoinStringCheckCont(el);
}

function GetJoinStringCheckCont(el) {
	var rows = el.parentNode.parentNode.parentNode.parentNode.parentNode.rows;
	var s = '';
	for (j=1; j < rows.length; j++) {
		if (rows[j].cells[0].children[0].children[0].checked) {s = s + ',' + rows[j].cells[0].children[0].children[1].innerHTML};
	}
	el.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.children[0].children[0].value = s.substring(1);
}

function ShowCheckCont(el) {
	el = el.parentNode.parentNode.children[1];
	el.className = 'CheckContFocused';
	el.tabIndex = '-1';	el.focus();
}

function onCheckContFocus() {this.className = 'CheckContFocused';}
function onCheckContBlur() {this.className = 'CheckCont';}
</script>
</body>
</html>

...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / select multiple
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]