Autor | Zpráva | ||
---|---|---|---|
Nunu Profil |
#1 · Zasláno: 18. 7. 2009, 18:48:28
Ve formuláři potřebuji aby se po vybrání země zobrazil select s kraji ... pomocí tohoto scriptu mi to funguje v Opeře ale ve Firefoxu ne (ostatní prohlížeče na tomto pc nemám, tak nevím). Ve ff se mi zobrazí select bez možností a výpis možností až jako samostatný text za tím. Pokud tam dám např. input vyplní se to normálně ... ví někdo proč to nefunguje?
<script type="text/javascript"> function fkat(typ){ if(typ == "-"){ window.document.getElementById('region').innerHTML = "Vyberte zemi"; } else { window.document.getElementById('region').innerHTML = '<select name="region"><option value="-"></option>'; var Region = new Array(); Region[1] = new Array('a', 'Hlavní město Praha', 'cze'); Region[2] = new Array('c', 'Jihočeský kraj', 'cze'); Region[3] = new Array('b', 'Jihomoravský kraj', 'cze'); Region[4] = new Array('k', 'Karlovarský kraj', 'cze'); Region[5] = new Array('h', 'Královéhradecký kraj', 'cze'); Region[6] = new Array('l', 'Liberecký kraj', 'cze'); Region[7] = new Array('t', 'Moravskoslezský kraj', 'cze'); Region[8] = new Array('m', 'Olomoucký kraj', 'cze'); Region[9] = new Array('e', 'Pardubický kraj', 'cze'); Region[10] = new Array('p', 'Plzeňský kraj', 'cze'); Region[11] = new Array('s', 'Středočeský kraj', 'cze'); Region[12] = new Array('u', 'Ústecký kraj', 'cze'); Region[13] = new Array('j', 'Vysočina', 'cze'); Region[14] = new Array('z', 'Zlínský kraj', 'cze'); Region[15] = new Array('bb', 'Banskobystrický kraj', 'svk'); Region[16] = new Array('ba', 'Bratislavský kraj', 'svk'); Region[17] = new Array('ke', 'Košický kraj', 'svk'); Region[18] = new Array('nr', 'Nitrianský kraj', 'svk'); Region[19] = new Array('po', 'Prešovský kraj', 'svk'); Region[20] = new Array('tn', 'Trenčianský kraj', 'svk'); Region[21] = new Array('tt', 'Trnavský kraj', 'svk'); Region[22] = new Array('za', 'Žilinský kraj', 'svk'); //vypsani regionů for(i = 1; i < Region.length; i++){ if(Region[i][2] != typ) continue; window.document.getElementById('region').innerHTML += '<option value="'+Region[i][0]+'">'+Region[i][1]+'</option>'; } window.document.getElementById('region').innerHTML += "</select>"; //kdyz nema regiony if(window.document.getElementById('region').innerHTML == ""){ window.document.getElementById('region').innerHTML = "Nemá regiony"; } } } </script> ... <tr><td><strong>Země:</strong></td><td><select name='zeme' onchange='value=document.getElementById("region").value;fkat(value)'> <option value='-'></option> <option value='cze'>Česká Republika</option> <option value='svk'>Slovensko</option> </select></td></tr> <tr><td><strong>Region:</strong></td><td id='region'>Vyberte zemi</td></tr> ... |
||
Chamurappi Profil |
#2 · Zasláno: 18. 7. 2009, 19:42:10
Reaguji na Nunu:
Přiřadíš-li řetězec, do innerHTML, prohlížeč si ho rozebere, vyrobí příslušné elementy, atributy i text a strčí je do příslušného rodiče. Přečteš-li řetězec z innerHTML, prohlížeč se podívá, co je uvnitř za elementy, atributy i text a sestaví z nich řetězec. Není dobrý nápad dávat do innerHTML neuzavřené elementy a je trochu naivní myslet si, že o řádek později při čtení (resp. doplňování existujícího) innerHTML zůstanou pořád neuzavřené. Sestav si celý HTML kód v proměnné a pak teprve jej přiřaď do innerHTML. |
||
_es Profil |
#3 · Zasláno: 18. 7. 2009, 20:00:23
Nunu
Ináč to pole sa dá zapísať kratšie: var Region = [void 0 ,['a', 'Hlavní město Praha', 'cze'] ,['c', 'Jihočeský kraj', 'cze'] /*...*/ ]; |
||
Nunu Profil |
#4 · Zasláno: 18. 7. 2009, 20:30:02
|
||
Časová prodleva: 15 let
|
0