Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Chyba v JavaScriptovém kódu

Ahoj, mohl by někdo najít chybu někde v tomto kódu ?

<script ..... >
function zmena(s) {
    var t=s.options[s.selectedIndex].value;		
    if (t=="nova") document.getElementById('div1').style.display="block";
}
</script>

<form name="f1"....>
    <SELECT name="skupina" onChange="zmena(this)">
    ....
    ....
<div id="div1" style="display: none;"> <input type="text" name="t1"> </div>
</form>

Určitě tam někde je, jenže nevim kde, prosím pomozte mi ... Díky všem.

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
v tom kodu neni chyba,. jen sem se chtel zeptat na toto: jesli ze zaslaneho parametru THIS ve funkc…
Michalis 05.01.2007 21:39
Michalis
Ak si posielaš do funkcie select, tak k názvu formulára sa dostaneš prostredníctvom select.form.name… poslední
los 06.01.2007 15:23
los

v tom kodu neni chyba,. jen sem se chtel zeptat na toto:

jesli ze zaslaneho parametru THIS ve funkcni zmena muzu nejak dostat nazev formulare ve kterem se dany select nachazi. Portoze na radku: if (t=="nova") document.getElementById('div1').style.display="blo ck"; potebuju dynamicky menit strind 'div1' a to takto: jednali se o nazev formulare f1, bude to div1, je-li nazev formulare f2, bude to div2 atd....
protoze na stance techto formularu muze byt X (generovane pres php) a nechci v kazdem cyklu vytvarek dynamicky novou JS funkci zmena1 potom zmena2 zmena3, kdyz se v dane fci bude menit jen ten jeden jiz zminovany strind 'div1' div2 atd...

Ak si posielaš do funkcie select, tak k názvu formulára sa dostaneš prostredníctvom select.form.name. K samotnému číslu sa dostaneš už jednoducho metódou substr.

Netestované, takže tam môžu byť chyby, ale je vidno princíp:

function zmena(s) {
    if (s.options[s.selectedIndex].value == "nova")
        document.getElementById("div" + s.form.name.substr(1)).style.display = "block";
}

50 formulárov na stránke? To je celkom dosť. Naozaj potrebuješ odosielať každý formulár na inú adresu?

Zpět do poradny Odpovědět na původní otázku Nahoru