Autor Zpráva
Nunu
Profil
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
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
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
[#2] tzn. že zase je jednou technika chytřejší než by bylo zdrávo :) ... děkuji za radu
[#3] ok, díky

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: