Autor | Zpráva | ||
---|---|---|---|
PetraPP Profil |
#1 · Zasláno: 7. 11. 2014, 12:29:18
Vygůglila jsem si jednoduchý javascript, který by měl při výběru či označení KATEGORIE v select <option> zobrazit PODKATEGORII tj. povolit zobrazení výpisu dalšího select.
Script ale nereaguje a já se svými pomálu nulovými schopnostmi javascriptu nedokáži vůbec odhadnout, kde může být chyba. http://kod.djpw.cz/uehb |
||
juriad Profil |
Já bych to udělal nějak takto:
http://kod.djpw.cz/zehb (obsahuje chybu: stačí nahradit null za '') Všimni si, že do HTML jsem přidat atribut data-depend, který je pak používaný JavaScriptem. V podstatě JavaScript jen sleduje, zda je select zobrazený a jestli položka je vybraná. Podle toho nastaví viditelnost závislému selectu. Pokud se má select skrýt, tak se navíc smaže atribut name. A při zobrazení se opět obnoví. Pozor, je to navázané na všechny selecty na stránce, takže nesmíš nikde v HTML u selectu použít atribut onchange. V tom tvém kódu je chyba především v tom, že tě nezajímá this, ale this.value (abys dostala tu hodnotu 0 nebo 1). |
||
Str4wberry Profil |
#3 · Zasláno: 7. 11. 2014, 13:40:05
Osobně bych se tomuto způsobu vybírání přes
<select> vyhnul obloukem, je hrozně nepohodlné se těmito seznamy proklikávat.
|
||
PetraPP Profil |
#4 · Zasláno: 7. 11. 2014, 15:49:32
juriad:
Řešení dobré a funkční, ale jak to bude fungovat, když budu mít na stránce i jiný <select> Nelze právě <select pro kategorii nějak odlišit? Nebo bude to fungovat bez problému, když si tam přidám jiný <select -> třeba pro výběr města? Str4wberry: Je to nepohodlné, ale je to jen do mojí administrace, tak že tento kód nijak vadit nebude. |
||
Chamurappi Profil |
#5 · Zasláno: 7. 11. 2014, 16:24:51
Reaguji na juriada:
Tvá ukázka nefunguje v Exploreru. Do vlastností ve style patří vždy řetězec, netroufal bych si dát tam null . Zdá se, že to je příčina problému.
|
||
juriad Profil |
#6 · Zasláno: 8. 11. 2014, 02:23:34 · Upravil/a: juriad
Chamurappi:
Diky, už to vidím: For each CSS property property that is a supported CSS property, the following partial interface applies where camel-cased attribute is obtained by running the CSS property to IDL attribute algorithm for property. Setting the camel-cased attribute attribute must invoke setProperty() with the first argument being the result of running the IDL attribute to CSS property algorithm for camel-cased attribute, as second argument the given value, and no third argument. Any exceptions thrown must be re-thrown. The setPropertyValue(property, value) method must run these steps: If value is the empty string, invoke removeProperty() with property as argument and terminate this algorithm. Pro odstranění vlastnosti se má vložit prázný řetězec. PetraPP: Ten JS nijak neovlivňuje chování běžných selectů; jediné, co způsobí, je, že jim nastaví svůj onchange. Upravil jsem ukázku: http://kod.djpw.cz/zehb Pokud již select měl nějaký onchange, tak bude zachovaný. Navíc můžeš teď zadat místo 'select' třeba 'select.has-depend' a těm které mají být spravovány přidat třídu: class="has-depend" Nebo je můžeš zacílit třeba pomocí předka: div.vyber-kategorie select
|
||
Časová prodleva: 9 let
|
0