Autor | Zpráva | ||
---|---|---|---|
Ratimor Profil * |
#1 · Zasláno: 16. 2. 2010, 21:20:23
Ahoj, zkusím popsat co nejpřesněji problém který se u mě na stránkách vyskytuje
tato fce je navázána na onLoad u prvku <body> function poNacteni() { if (document.formular.pozice !== null && document.formular.pozice.value !== "none") { document.location.href = self.location.href + "#" + document.formular.pozice.value; } alert("s"); if (document.getElementById('sablonyHidden').value == "ne" || document.getElementById('sablonyHidden').value == "ano") { document.getElementById('sablonyHidden').value = "ne"; if (document.getElementById('sablony')!== null) document.getElementById('sablony').value = "+ šablony"; if (document.getElementById('sablonyDiv')!== null) document.getElementById('sablonyDiv').style.display = "none"; } else if (document.getElementById('sablonyHidden').value == "anoo") { document.getElementById('sablonyHidden').value = "anoo"; if (document.getElementById('sablony')!== null) document.getElementById('sablony').value = "- šablony"; if (document.getElementById('sablonyDiv')!== null) document.getElementById('sablonyDiv').style.display = ""; } if (document.getElementById('zmenaSkupiny') !== null) { document.getElementById('zmenaSkupiny').value = "ne"; } if (document.getElementById('submit_ulozit_hlasovani') !== null) { document.getElementById('submit_ulozit_hlasovani').style.display = "none"; } } problém je v tom, když neexistuje prvek pozice(před alertem), což je input type hidden, pak se zbytek funkce neprovede(ani ten alert) mohli byste mi prosím zkusit poradit, jak jinak, lépe otestovat existenci toho hiddenu, aby se ten zbývající JS provedl? Popřípadě, kdyby někdo viděl nějaké další chyby, klidně může přispět do diskuze, v JS nejsem příliž zběhlý :) kdyby někomu přišlo vysvětlení nedostatečné, rád upřesním díky Ondra |
||
Joker Profil |
#2 · Zasláno: 18. 2. 2010, 11:16:39
Ratimor:
„se zbytek funkce neprovede(ani ten alert)“ Když se něco takového stane (= zjevně skript předčasně skončí), nejspíš to je kvůli tomu, že ve skriptu nastala nějaká chyba -> otevřete výpis JS chyb a zkontrolujte. V tomhle případě je problém tady: if (document.formular.pozice !== null && document.formular.pozice.value !== "none") Řešení: 1. Místo document.formular.pozice !== null použít document.formular.pozice !== undefined 2. Místo operátoru identity použít operátor porovnání: document.formular.pozice != undefined, tady už by dokonce fungoval i null (protože zatímco pro operátor identity neplatí, že null === undefined, s operátorem porovnání null == undefined platí) 3. Podle mě nejjednodušší a nejlepší řešení, jednoduše testujte, jestli se objekt vyhodnotí jako true. if (document.formular.pozice && document.formular.pozice.value !== "none") |
||
Ratimor Profil * |
#3 · Zasláno: 18. 2. 2010, 16:57:51
mm, pěkně vysvětlený, děkuju :)
|
||
Časová prodleva: 16 let
|
0