| Autor | Zpráva | ||
|---|---|---|---|
| Pavel Dumbrovský Profil |
#1 · Zasláno: 1. 1. 2011, 23:29:05
Zdravím Vás,
prosím o radu, v JS začínám a nevím co s tím. Mám dva selecty, výběr kategorie a podkategorie a chci, aby se mi v v tom selectu podkategorie vypsalo pole optionů podle toho, jaký je vybraný select kategorie. Zatím jsem to zkusil takto, ale to nejede: Touto funkcí měním pole pro výpis podkategorií:
function setKat() {
var aktualni_kategorie;
aktualni_kategorie="podkategorie";
aktualni_kategorie+=document.formular.kategorie.value;
podkategorie=aktualni_kategorie;
alert(aktualni_kategorie);
}Tady volám tu funkci setKat() <select name="kategorie" onChange="setKat()"> A tady se mají vypsat ty podkategorie, ale s document.write to samozřejmě po načtení stránky už nepůjde, jak na to prosím? <script>
for (var podkategorie in podkategorie) {document.write (podkategorie [jmeno]);}
</script> |
||
| Radek Cvek Profil |
#2 · Zasláno: 2. 1. 2011, 00:36:21
<script language="JavaScript" type="text/javascript">
function setKat()
{
for (var i=0; i<document.formular.podkategorie.length; i++) document.formular.podkategorie.remove(i);
if (document.formular.kategorie.value=='ovoce')
{
document.formular.podkategorie.options[0]=new Option("jablko", "jablko", false, false);
document.formular.podkategorie.options[1]=new Option("hruška", "hruška", false, false);
document.formular.podkategorie.options[2]=new Option("švestka", "švestka", false, false);
}
if (document.formular.kategorie.value=='zelenina')
{
document.formular.podkategorie.options[0]=new Option("celer", "celer", false, false);
document.formular.podkategorie.options[1]=new Option("mrkev", "mrkev", false, false);
}
}
</script>
<form name="formular">
<select name="kategorie" onChange="setKat();">
<option value="ovoce">ovoce</option>
<option value="zelenina">zelenina</option>
</select>
<select name="podkategorie">
</select>
</form> |
||
| Pavel Dumbrovský Profil |
#3 · Zasláno: 2. 1. 2011, 16:49:23
Děkuji za pomoc,
tady ty formulářové elementy neznám. Nevíte o nějaké stránce, kde je seznam takovýchto elementů, které jdou měnit pomocí js, něco jako uvedené document.formular.podkategorie.options[]? Díky! |
||
| Radek Cvek Profil |
#4 · Zasláno: 2. 1. 2011, 21:16:22
Pomocí javascriptu lze měnit snad úplně všechny formulářové atributy - a to docela předvídavě:
<input value="hodnota"> se mění .value=jinahodnota <input checked="checked"> se mění .checked=false a naopak .checked=true <input disabled="disabled"> se mění .disabled=false a naopak .disabled=true ... a podobně viz. odkaz já se to teprve učím a pomáhá mi toto perfektní na tom portálu je Try it yourself » - otevře se okno, kde se dá měnit javascriptový kód a učit se to pokus-omyl - jak to dělám já Pro javascript odborníky: co se týče kódu výše - vymazávám všechny optiony pomocí cyklu for (var i=0; i<document.formular.podkategorie.length; i++) document.formular.podkategorie.remove(i); ale vygůgloval jsem, že by se to dalo takto: document.formular.podkategorie.options.length=0; což znamená, že místo cyklu, který prochází všechny optiony a maže je, bych to hned vymazal najednou - ale mě to nefunguje! V čem je chyba? |
||
| Pavel Dumbrovský Profil |
#5 · Zasláno: 3. 1. 2011, 12:48:27
Radek Cvek:
„Pomocí javascriptu lze měnit snad úplně všechny formulářové atributy“ To už jsem taky zjistil a co jiné věci než formuláře? Vím že to jde pomocí id nebo class, třeba změnit barvu, nebo nastavit dipslay:none; a podobně, ale když chci napřiklad na stránce prostě vypsat nějaký početní výsledek a měnit ho třeba na kliknutí někam? |
||
| Tori Profil |
#6 · Zasláno: 3. 1. 2011, 12:56:39
Pavel Dumbrovský:
„když chci napřiklad na stránce prostě vypsat nějaký početní výsledek a měnit ho třeba na kliknutí někam“ Výsledek pište do nějakého elementu, jehož obsah budete měnit pomocí vlastností id a innerHTML. |
||
|
Časová prodleva: 15 let
|
|||
0