Autor Zpráva
regy
Profil
Zdravím,
právě jsem se dostal ke krásnému článku o tomoto fóru a doufám, že se netýká mých příspěvků, nebo alespoň ne moc. Doporučuji všem, kteří nečetli ;-). Ale zpět k mému problému. Je složité vysvětlovat o co se jedná, ale pokusím se. Na svých stránkách mám formulář (složený z checkboxů a radiobuttonů), který zachycuje změny na stránce. Například při zavření nějakého panelu, se ve formuláři odškrtne kolonka určená tomuto panelu. Všechny checkboxy a radiobuttony mají nastaveno, že onchange se formulř odešle (aby se uložily změny). Problém je ale v tom, že onchange funguje pouze při ručním změnění checkboxu, nikoliv změnění pomocí javascriptu. Pro pochopení se prosím podívejte na http://www.kablik.cz/beta/ a mějte prosím ohled na to, že je to betaverze stránky ;-). S tímto problémem se potýkám již delší dobu, zkoušel jsem i napsat, že při kliknutí na ikonu, která nějaký panel vládá se formulář odešlě také, to ale z neznámého důvodu nefungovalo a byl bych vám tedy velice vděčný, kdybyste mi někdo poskytl vaší pomoc.
Chamurappi
Profil
Reaguji na regyho:
onchange='self.document.forms.mainset-form.submit();'
Odečítáš výsledek funkce „form.submit“ od „self.document.forms.mainset“? V identifikátoru nemůžeš mít pomlčku.
Je to vtipná situace, protože ten zápis funguje — zavolání form.submit() odešle aktuální formulář.

onchange funguje pouze při ručním změnění checkboxu, nikoliv změnění pomocí javascriptu
V Exploreru funguje onchange na checkboxu zpožděně.
Na daném webu jsem si nevšiml ničeho, co by měnilo zaškrtnutí skriptem. Každopádně jestli tam něco takového je, může to i samo zavolat ten submit.
regy
Profil
Děkuji.

Na daném webu jsem si nevšiml ničeho, co by měnilo zaškrtnutí skriptem. Každopádně jestli tam něco takového je, může to i samo zavolat ten submit.

Ano něco takové tam je. Možná javascript zrovna upravoval a něco jsem udělal špatně, tak to nefungovalo. Ale jinak když se rozklikne nastavení a pak zavíráte nebo otevíráte panely, tak se mění i checkboxy.

Do scriptu, který mění checkboxy jsem sem zokoušel zakomponovat submit(), ale neúspěšně. Pravděpodobně asi proto, že je v identifikátoru pomlčka. Děkuji za odpověď, uý jsem nečekal, že mi někdo odpoví a ještě sem později napíšu, jak to dopadlo ;-).
regy
Profil
Tak teď už vše funguje. V javascriptu nejsem zrovna nejzdatnější a nepředpokládal jsem, že js zareaguje takto;-). Důvod, proč jste neviděl, co na webu mění checkboxy je ten, že se web načetl bez stylů. Když kliknete na nastavení -> vthled a tam něco vyberete a odešlete, bude to hned pochopitelnější ;-). Ještě jednou vám moc děkuji.
Chamurappi
Profil
Reaguji na regyho:
Aha, ty panely jdou zavřít i křížkem v jejich záhlaví, toho jsem si nevšiml.
Řekl bych, že checkboxy by měly při onclicku volat stejnou funkci jako ty zavírací křížky. Funkci, která srovná stav checkboxů a panelů (tím či oním směrem) a odešle formulář.

Událost onchange bych na tvém místě nepoužíval vůbec.
regy
Profil
jako abych používal onclick místo onchange?
Chamurappi
Profil
Reaguji na regyho:
Ano.

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: