Autor | Zpráva | ||
---|---|---|---|
davef6 Profil |
#1 · Zasláno: 5. 10. 2009, 13:40:25
Mám v javascriptu napsaný jednoduchý skriptík, ale nech mi fungovat co s tím?
<script language="javascript"> function ch_color(){ if (document.form_n.this[0].checked) { window.alert("ano one"); } else if (document.form_n.this[1].checked) { window.alert("ano two"); } else if (document.form_n.this[2].checked) { window.alert("ano three"); } } </script> platí to pro tento formulář <form summary="Schvalování" action="index.php?akce=schvaleni&co=group" name='form_n' method="post" ENCTYPE="multipart/form-data"><table summary="schvalování fotek" class='schvaleni_foto'> <th>Datum</th><th>Foto</th><th style='width:80px;'>Nick</th><th>Věk</th><th>Autorizace</th> <input type='hidden' name='id[50204]' value='31490' /> <input type='hidden' name='id_uziv[50204]' value='100119' /> <input type='hidden' name='img[50204]' value='img/0055000/0050204.jpg' /> <tr><td>05.10. 13:27</td><td style='width:80px; height:80px;'><a href="/img/0055000/0050204.jpg" onMouseOut="toolTip()" onMouseOver="toolTip('/img/0055000/0050204.jpg')" rel="lightbox[roadtrip]"><img src='/img/0055000/0050204.jpg' style='max-width:80px; max-height:80px;border:3px solid #0075b7' /></a></td><td>indian4</td><td>0</td><td id='table' style='background-color:green;'><label><input type="radio" name="check_50204" value='s' onClick="ch_color(this);" checked='checked' />Schválit</label> | <label><input type="radio" onClick="ch_color(this);" name="check_50204" value='n' />Neschválit</label> | <label><input type="radio" onClick="ch_color(this);" name="check_50204" value="d" />Odstranit</label> </td></tr> <input type='hidden' name='id[50202]' value='31489' /> <input type='hidden' name='id_uziv[50202]' value='100118' /> <input type='hidden' name='img[50202]' value='img/0055000/0050202.jpg' /> <tr><td>05.10. 13:21</td><td style='width:80px; height:80px;'><a href="/img/0055000/0050202.jpg" onMouseOut="toolTip()" onMouseOver="toolTip('/img/0055000/0050202.jpg')" rel="lightbox[roadtrip]"><img src='/img/0055000/0050202.jpg' style='max-width:80px; max-height:80px;border:3px solid #F88D8D' /></a></td><td>nikuska11151</td><td>18</td><td id='table' style='background-color:green;'><label><input type="radio" name="check_50202" value='s' onClick="ch_color(this);" checked='checked' />Schválit</label> | <label><input type="radio" onClick="ch_color(this);" name="check_50202" value='n' />Neschválit</label> | <label><input type="radio" onClick="ch_color(this);" name="check_50202" value="d" />Odstranit</label> </td></tr> </form> |
||
Aichi Profil |
#2 · Zasláno: 5. 10. 2009, 14:17:18
funkci ch_color pri onclick predavas parametr (this), ten ale v definici funkce neni, takze si ho tam dodefinuj, treba jako elm a pak v te funkci musis upravit kod tak aby se zjistovalo zda ten predany element je ten spravny, ocividne kazdy ten checkbox ma name, takze si testuj zda
elm.name == "XXX" && elm.checked |
||
davef6 Profil |
#3 · Zasláno: 5. 10. 2009, 14:36:29
upravil jsem to a ani takto to nic nedělá
<script language="javascript"> function ch_color(f){ if (document.form_n.f[0].checked) { window.alert("ano one"); } else if (document.form_n.f[1].checked) { window.alert("ano two"); } else if (document.form_n.f[2].checked) { window.alert("ano three"); } } </script> |
||
fajzen Profil |
#4 · Zasláno: 5. 10. 2009, 18:58:11 · Upravil/a: fajzen
parameter f vo funkcií ch_color() totiž odkazuje priamo na radio, na ktoré sa kliklo. Takže žiadne
document.form_n.f[0].checked ale f.checked potom ale celý ten kód funkcie nemá zmysel... nahradil by som to niečím ako: function ch_color(f){ switch(f.value) { case 's' : window.alert("ano one"); break; case 'n' : window.alert("ano two"); break; case 'd' : window.alert("ano three"); break; } } |
||
davef6 Profil |
#5 · Zasláno: 6. 10. 2009, 10:29:46
ok díky takhle to už funguje, ale jakmile dodám do funkce druhý paramatr, tak to zase nejde
<script language="javascript"> function ch_color(f,pole){ switch(f.value) { case 's' : document.getElementById(pole).style.background = "#C6FFC6"; break; case 'n' : document.getElementById(pole).style.background = "#FFCCCC"; break; case 'd' : document.getElementById(pole).style.background = "#FFbbCC"; break; } } </script> spouštím to takto onClick="ch_color(this,pole_1);" |
||
Aichi Profil |
#6 · Zasláno: 6. 10. 2009, 10:47:24
zkus nad tím přemýšlet:
onClick="ch_color(this,pole_1);" do funkce předáváš proměnnou s názvem pole_1, která samozřejmě neexistuje, takže ti do funkce chodí undefined. Asi to tam chceš předávát jako řetězec. Pak je ten první parametr zbytečný. Nechces začít používat Firebug a krokování aby ses nemusel ptát na takovéhle elementární dotazy. Pak ty chyby uvidíš hned. |
||
davef6 Profil |
#7 · Zasláno: 6. 10. 2009, 11:35:38
jak tam tedy mohu dostat to pole_1 ono jich bude více pole_2, pole_3 atd......bude více řádků, pro které se funkce použije, prosím za trochu trpělivosti, nejsem s javascriptem moc velký kamarád
|
||
Chamurappi Profil |
#8 · Zasláno: 6. 10. 2009, 11:40:43
Reaguji na davefa6:
„nejsem s javascriptem moc velký kamarád“ Ale mohl bys umět rozpoznat proměnnou od řetězce. Jak zapisuješ řetězce v jiných programovacích jazycích? Reaguji na Aichiho: „předáváš proměnnou s názvem pole_1, která samozřejmě neexistuje, takže ti do funkce chodí undefined“ Spíš to vyhodí výjimku. |
||
davef6 Profil |
#9 · Zasláno: 6. 10. 2009, 11:51:35
no jasný, už to mám......díky za návod
|
||
Časová prodleva: 15 let
|
0