Autor Zpráva
visitor
Profil *
Chyba je zrejma pri prohlidnuti toho co vygeneroval IE (chybne) a toho co vygenerovala OPERA nebo FF.

http://chemik.ostravak.eu/projekty/html_js_php_priklady/generovani_kol ekci_selectboxu.html

u IE je vsechno generovano jakoby o -1 pozici v SB a pri pouziti "prikazu": javascript:'<xmp>'+document.documentElement.outerHTML+'</xmp>'; jde videt ze select nema ani hodnotu name ani vlastnost onchange prirazenou.

Na radku 161 je zakomentovany debug alert ketry pri odkomentovani ukazuje ze IE by mel davat parametr selected spravne. Ale nedava.

Ze by zase nejaka spatna interpretace DOM ala Microsoft?
peta
Profil
http://www.volny.cz/peter.mlich/www.htm#mssub12
- JS 2 selecty
- JS table, select, button, radio (placene)
- priklady (select, calendar, tree)
pokud nemusim, negeneruji DOMem
visitor
Profil *
Predem rikam ze vsechny tri veby jsem navstivil a dokonce podle jednoho z nich mam udelany svuj script.

Dekuji za radu ale problem se akorat prohloubil. Nove reseni je stejne funkcni v FF a IE a nefunguje naopak v O.

Zakomentovany je debug vypis a "stare" reseni.



for (i = 1; i < list.length; i++) {
if (list['value'] == id_1) {
// alert (list[i]['value'] + ' = ' + id_1 + ' ' + list[i]['name']);

var opt = document.createElement('option');
opt.value = list[i]['value'];
opt.text = list[i]['name'];
opt.selected = true;
newBoxS1.options.add(opt, i);
//newBoxS1.options[i] = new Option (list[i]['name'], list[i]['value'], true, true);
} else {
var opt = document.createElement('option');
opt.value = list[i]['value'];
opt.text = list[i]['name'];
newBoxS1.options.add(opt, i);
//newBoxS1.options[i] = new Option (list[i]['name'], list[i]['value']);
}
}


Pokud pominu nefunkcnost noveho reseni v OPERE tak obe reseni v IE prirazuji selected priznak optionu s indexem o 1 mensim...

I kdyz diky debug hlaseni se snazi pridavat selected priznak dat spravnemu optionu nakonec ho ma option s indexem o jedna nizsi.

Jednoduchy priklad:
name - value
Honza - 1
Martin - 2
Alois - 3

funkci posli hodnotu [i]id_1 = 2

Alert debug - spusti se jen v pripade kde ma byt selected priznak (jen kdyz vyhovi podminka id_1 == list[i]['value'])
2 = 2 Martin

ale nakonec je selectnuta polozka Honza.

JEN V IE.

chybove konzole nehlasi nic.

Nejake dalsi napady ?
visitor
Profil *
Dobojováno - doufam ze uz finalne...

Krom jinych tezkosti, kterych bylo asi jen 50 ;-) se zminovany kus kodu musel prepsat na:

for (i = 1; i < list.length; i++) {
newBoxS1.options[i] = new Option (list[i]['name'], list[i]['value']);
if (list[i]['value'] == id_1) {
newBoxS1.options[i].selected = true;
}
}


Z tech 50ti nektere vyjmenuji:
- nemoznost odkazovat se na prvky jen podle name (musel jsem pridat id)
- ze zahadneho duvodu si i pri reloadu JS pamatoval a automaticky vyplnoval hodnotu input pole (nutne rucni inicializace hodnoty pomoci JS)
- pridani vlastnosti onchange bylo pro me maturitou (jediny mozna zpusob pres konstruktor new Function())
...

Ve FF a Opere tyto problemy nebyly... Takze slozitejsi JS a IE nejdou dohromady alespon ne ze jednou napsane je univerzalni...

kdyby na podobny problem nekdo narazil dam dokupy celovy kod a bude vystaven:
http://chemik.ostravak.eu/projekty/html_js_php_priklady/generovani_kol ekci_selectboxu.html

a dalsi
http://chemik.ostravak.eu/projekty/
dole
habendorf
Profil
Takhle se mi to líbí. Člověk pěkně pokecá sám se sebou, dojde úspěšně k řešení a ještě ho vystaví. So soll es sein.
visitor
Profil *
Ale laboroval jsme nad tim minimalne tyden. A nakonec mi nikdo nic co by mi pomohlo neporadil... Jo krivdim LOSovi v jinem threadu ktery mi poradil jak na onchange.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0