[HTML] enable select on click

zya369

собсно как сделать чтобы мультиселект при тыкании в него мышкой становился активным?
такое впечатление, что disabled селект onClick не ловит

pitrik2

такое впечатление, что disabled селект onClick не ловит
может быть онклик ловит его родитель?

zya369

ну блин..
я тоже об этом подумал...
но на родителя завязываться совсем не хочется

pitrik2

в мсдн написано что disabled означает disabled, тоесть элемент после этого не реагирует ни на какой изверский инпут
кликанье мышкой - это явно юзверьский инпут
делай вместо дизаблед ридонли

zya369

тут пишут что нет такого слова

pitrik2

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

Commandor

Как вариант - можно сделать disabled
onclick повесить на родительский элемент и обрабатывать в нем положение мышки (над селектом или нет) - с тем же prototype это 2 строки.

pitrik2

Как вариант - можно сделать disabled
onclick повесить на родительский элемент и обрабатывать в нем положение мышки (над селектом или нет) - с тем же prototype это 2 строки.
или ты не читал первый ответ в этом треде
или я тебя не понимаю
можешщь реально работающий код привести?

Commandor

Пока до конца треда дочитал уже забыл первый ответ . Ща посидел, поигрался - onclick родитель ловит только в IE 6 (тестил только в IE 6 и Firefox) .
Потанцевав с бубном выродил следующее сочетание извращений: (в IE работает один вариант из комплекта, в FF другой )

<html>
<script type="text/javascript" src="/lib/prototype.js" type="text/javascript"></script>
<script type="text/javascript">
function EnableSelect(event) {
if (Position.within($('select'Event.pointerX(eventEvent.pointerY(event {
$('select').disabled=false;
$('onselect').hide;
}
}
</script>
<body>

<div onclick='EnableSelect(event);' id="div">
<select id="select" disabled="disabled">
<option value="1">bla-bla-bla</option>
<option value="2">alb-alb-alb</option>
</select>
</div>
<div style="background-color:transparent; position:absolute; display:none" onclick="EnableSelect(event);" id="onselect"></div>
<script type="text/javascript">
Position.clone($('select'$('onselect';
$('onselect').show;
</script>

</body>
</html>

pitrik2

onclick родитель ловит только в IE 6
ну не знаю
в ие7 у меня не ловит
пример твой не годится, приводи его без прототайпа

Commandor

Ну я и написал, что только в IE6 ловит. IE 7 на страничках ведет себя почти, как фаерфокс.
Без прототайпа не хочу - лениво. При желании можно срезать куски кода из него. С прототайпом пример приведен только для того, чтобы показать, как можно извратиться, а не чтобы предоставить топикстартеру готовое решение.
Оставить комментарий
Имя или ник:
Комментарий: