Autor Zpráva
wm
Profil *
Mam tu rozbalovaci nabidku

<select name="a">
<option value="1"> 1</option>
<option value="2"> 2</option>
<option value="3"> 3</option>
</select>

jak ale docilit, aby uzivatel nemohl vybrat treba tu druhou? proste aby byla videt ve vypisu, ale de facto jen jako informacni text..

napadlo me <option disabled="disabled" value="2">2</option> ale to zase funguje jen v mozille
Fred
Profil
možná zkus mrknout na optgroup
Leo
Profil
Na tohle existuje znacka optgroup, ale musite si vykouset jak funguje v ruznych prohlizecich: http://www.w3schools.com/tags/tag_optgroup.asp

Leo
izsak
Profil
napadlo me <option disabled="disabled" value="2">2</option> ale to zase funguje jen v mozille
Toto je správny spôsob zrušenia možnosti voľby položky.

Žeby IE toto nepodporoval? Však píšu o plnej podpore štandardu HTML 4. :-[

<!ELEMENT option (#PCDATA)>     <!-- selectable choice -->

<!ATTLIST option
%attrs;
selected (selected) #IMPLIED
disabled (disabled) #IMPLIED
label %Text; #IMPLIED
value CDATA #IMPLIED
>
wm
Profil *
izsak: zkousel jsem to v IE6 co maji v sobe win2003 a na tato moznost mi nefunguje.. jiny system ted nemam po ruce..

jinak zkusim procist tu optgroup
izsak
Profil
wm
Option group však slúži na niečo úplne iné...

Vyskúšať podporu pre atribút disabled budem mať až zajtra.
Leo
Profil
Disabled na option nefunguje ani v IE 5.0, ani v 5.5 ani v IE 6. Leo
wm
Profil *
takze opravdu mam moznost pouzit jedine optgroup?
Leo
Profil
No jeste me napada JavaScript - pokud dojde k udalosti onchange na tom option, tak to proste na danych options ignoruje, vyzkousim, dam vedet. Ale pak by bylo sikovnejsi zrovna ty polozky rovnou schovat. HTML only reseni pro IE neznam. Proc vlastne chcete aby byl option videt ale nesel vybrat, jako ma roli? Leo
Fred
Profil
Tak se mi zdá, že to vůbec nereaguje, sice se dostanu k tomu disabled, ale funkce co je jakoby nadřazená na selectu to přebije. Jenže já se často mýlím. Tohle je polotovar co jsem zbastli, třeba někdo bude vědět co dál.

<style type="text/css">
option.disabled{color:#aca899;background:#fff}
</style>
<script type="text/javascript">
<!--
var d=document;
function getId(id){return d.getElementById(id);}
function setdisabled(){
var sel=getId('sel');
var opt=sel.getElementsByTagName('option');
for (var i=0;i<opt.length;i++){
if (opt[i].getAttribute('disabled')) {
opt[i].className='disabled';
}}}
function loadIE(obj,evType,fn){
if (obj.attachEvent){
var r=obj.attachEvent("on"+evType,fn);
return r;
}}
loadIE(window,'load',setdisabled);
//-->
</script>
</head>
<body>
<select id="sel" size="3" onchange="alert('select')">
<option disabled="disabled" onclick="alert('option')" value="opt1">
opt1
</option>
<option value="opt2">
opt2
</option>
<option value="opt3">
opt2
</option>
</select>
<!-- ie vůbec nevezme alert option jakoby alert na select byl nadřazen, dává jenom alert select -->
wm
Profil *
prozatim jsem vyuzil tag optgroup

napad byl, ze mam vzdy nejaky seznam veci a vzdy treba
A
a nekolik polozek zacianajici na pismeno a
B
...
...
C
...
D atd. a ze vzdy to pimesno abecedy by byla take option, ale pouze infrmaci charakter => nesla vy vybrat
Leo
Profil
No tak presne pro tohle je urceny - rekl bych - prave optiongroup. Vyreste to takhle a muzete s klidem na dusi klidne slavit validni a semanticky spravne vanoce :-) Leo
izsak
Profil
Popis atribútu disabled v dokumentácii k IE:
http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/d isabled_3.asp

The disabled attribute can be set and retrieved. However, the functionality specified by the HTML 4.0 standard is not implemented for this property.
There is no functionality implemented for this property unless defined by the author.


Microsoft je taký štedrý, že nám dovoľuje si napísať vlastné chovanie IE pre tento atribút.
izsak
Profil
Leo
Lenze <optiongroup> slúži na zoskupenie položiek do kategórií, nie na zabránenie ich označeniu.
Sématicky to teda nebude správne. Ale je to zatiaľ bez JS jediné funkčné riešenie :'(
Leo
Profil
A co seskupeni podle pismen jineho nez kategorie? Leo
Toto téma je uzamčeno. Odpověď nelze zaslat.