Autor | Zpráva | ||
---|---|---|---|
Hopa Profil |
Mám dán option select kde je 5 moznosti na vyber. Jak muzu nastavit aby se zobrazila pri nacteni stranky predvybrana moznost selectu aniz bych menil poradi optionu?? Snad je to srozumitelne. Diky
Moderátor Chamurappi: Tvůj projev je špatně srozumitelný, piš prosím s diakritikou a interpunkcí.
|
||
Chamurappi Profil |
#2 · Zasláno: 20. 2. 2010, 03:35:38
Reaguji na Hopu:
Přidej <option>u atribut selected .
|
||
Hopa Profil |
#3 · Zasláno: 20. 2. 2010, 03:59:08
a kdyz to potrebuju ve skriptu menit pri generovani stranky podle nejakeho drivejsiho nastaveni? jak v tom selektu dokazu pristoupit k tomu optionu a vybrat ho?
|
||
sysel Profil |
#4 · Zasláno: 20. 2. 2010, 04:48:38
Myslím, že během prohlížení stránky lze jednoduše nastavit hodnotu <selectu>, samozřejmě z vhodných možností:
tentoSelect.value = "hodnota" Nastavovat hodnotu mimo těch, které jsou vyjmenovány v <option>ech, by způsobilo nejspíš chybu a také by nebylo co zobrazit. I ztěchto důvodů by patrně bylo vhodné celý seznam <option>ů vygenerovat dynamicky a hodnoty i zobrazovaný text mít v poli. |
||
Fred Profil |
#5 · Zasláno: 20. 2. 2010, 09:08:00
Nevím jestli chápu dobře co chceš, je to trochu nesrozumitelné. Tady máš příklad a můžeš si v něm zobrazit co to generuje (každý prohlížeč mrví generovaný zdroj jinak, toho se nelekej).
<style type="text/css"> *{outline:none;margin:0;padding:0;} #radiopole{list-style-type:none;} table{vertical-align:top;border:none;border-collapse:collapse;} a{display:block;} /*pro evangelisty: je to v tabulce a co?*/ </style> <table> <tr> <td> <select size="4" id="slc"> <option selected="selected">0</option> <option>1</option> <option>2</option> <option>3</option> </select> </td> <td> <ul id="radiopole"> <li><input type="radio" name="r[]" id="a0"><label for="a0">0</label></li> <li><input type="radio" name="r[]" id="a1"><label for="a1">1</label></li> <li><input type="radio" name="r[]" id="a2"><label for="a2">2</label></li> <li><input type="radio" name="r[]" id="a3"><label for="a3">3</label></li> </ul> </td> </tr> </table> <script> function vyber(){ var pole=document.getElementById('radiopole'); var radia=pole.getElementsByTagName('input'); for(var i=0;i<radia.length;i++){ radia[i].setAttribute('rel',i); document.getElementById('slc').options[i].removeAttribute('selected'); radia[i].onclick=function(){ document.getElementById('slc').selectedIndex=this.getAttribute('rel'); document.getElementById('slc').options[document.getElementById('slc').selectedIndex].setAttribute('selected','selected'); } } } window.onload=vyber; </script> <a href="javascript:'<xmp>'+document.getElementsByTagName('html')[0].innerHTML+'</xmp>';">zobrazit co to generuje</a> |
||
Fred Profil |
#6 · Zasláno: 20. 2. 2010, 09:20:52
Předtím jsem se nedíval ve firefoxu co to generuje a mám tam chybku, takhle to smázne na onload selected="selected" a přidává to na každý vybraný option, aby to přidávalo vždy jen na jeden je třeba za řádkem s onclickem znovu zavolat tu onload funkci
... radia[i].onclick=function(){ vyber(); ... |
||
sysel Profil |
#7 · Zasláno: 21. 2. 2010, 10:20:49
Omlouvám se za absenci, jsem mimo svůj pracovní vývojový bordel. Proto se dočkáš návrhu nějakého kódu až se večer vrátím dom. Ale ze studijních důvodů můžeš prohlédnout jednu ne zcela povedenou JS aplikaci támhle. :-)
|
||
Hopaa Profil * |
#8 · Zasláno: 22. 2. 2010, 14:02:08
Diky, podarilo se mi to rozjet jak jsem potreboval!
Nevite jeste jak pomoci skritpu nastavit selectu velikost? abych mel vsechny slecty v tabulce pekne stejne velky a nemenila se sirka podle vybraneho optionu? Deluji |
||
Hopaa Profil * |
#9 · Zasláno: 22. 2. 2010, 14:08:32
a vycentrovni textu v poli typu 'text' ? "BLUSH"
|
||
Chamurappi Profil |
#10 · Zasláno: 22. 2. 2010, 14:24:40 · Upravil/a: Chamurappi
Reaguji na Freda:
To je nějaké zbytečně upovídané. Nešlo by to bez removeAttribute, getAttribute, setAttribute a zneužití relu? function vyber() { var pole = document.getElementById('radiopole'); var radia = pole.getElementsByTagName('input'); var select = document.getElementById('slc'); for(var i = 0, radio; radio = radia[i]; i++) { select.options[i].selected = false; (function(i) { radio.onclick = function() { vyber(); select.options[i].selected = true; }; })(i); } } Vlastně by to mělo jít ještě víc zrubat: function vyber() { var radia = document.getElementById('radiopole').getElementsByTagName('input'); var select = document.getElementById('slc'); for(var i = 0, radio; radio = radia[i]; i++) { select.options[i].selected = radio.checked; radio.onclick = vyber; } } Reaguji na Hopau: Stejně pořád nerozumím, co vlastně chceš. Fredův skript sice poběží, ale připadá mi víceméně k ničemu. „Nevite jeste jak pomoci skritpu nastavit selectu velikost?“ Kdybys velikostí myslel ten atribut size , tak objektSelectu.size = číslo .
„abych mel vsechny slecty v tabulce pekne stejne velky a nemenila se sirka podle vybraneho optionu“ Nastav CSS vlastnost width .
„a vycentrovni textu v poli typu 'text' ?“ Stejně jako v čemkoliv jiném. „BLUSH“ Huš. Piš česky, nutné anglické citace překládej. |
||
Hopaa Profil * |
#11 · Zasláno: 22. 2. 2010, 15:59:45
ja ten script ani nepoustel, jen sem potreboval vedet ty klicovy slova a pak pohoda.
ten "size" jeste vyzkousim, me to nejak blblo, ale kdo vi kde jsem se prepsal..... "BLUSH" .. jakoze se stydim za trapne dotazy ;) jeste jednou dikec za pomoc |
||
Fred Profil |
#12 · Zasláno: 22. 2. 2010, 19:22:52
Reguji na Chamurappi: Na rel jsem nějak zvyknul jako cvičená opice. Ta zrubaná funkce je moc pěkná.
V IE funguje ve všech 3 případech generovaný zdroj. Ale Firefox mi po vyzkoušení nasadil brouka do hlavy, protože mi není jasné proč to nepřegeneruje, i přestože to jde vyalertovat alert(select.options[select.selectedIndex].text) Zkoušel jsem jak <a href="javascript:'<xmp>'+document.getElementsByTagName('html')[0].innerHTML+'</xmp>';">zobrazit co to generuje v tomto okně</a> tak i <a href="javascript:document.write(document.documentElement.innerHTML);%20document.close();">přepsat stránku a zobrazit přepsaný zdroják pomocí ctrl+u</a> V MSIE jsou ty generované zdroje v pořádku ve všech 3 případech oběma způsoby. Zvláštní. |
||
Chamurappi Profil |
#13 · Zasláno: 23. 2. 2010, 14:17:13
Reaguji na Freda:
„Firefox mi po vyzkoušení nasadil brouka do hlavy, protože mi není jasné proč to nepřegeneruje“ Co přesně máš na mysli? V HTML kódu v innerHTML se neodráží přesně všechny vlastnosti DOMu, zejména v Mozillách existuje u formulářů víc anomálií, kdy třeba může prvek.getAttribute("value") vracet něco jiného než prvek.value .
|
||
Fred Profil |
#14 · Zasláno: 23. 2. 2010, 19:41:19
V HTML kódu v innerHTML se neodráží přesně všechny vlastnosti DOMu, zejména v Mozillách existuje u formulářů |
||
Časová prodleva: 13 let
|
0