Autor Zpráva
davef6
Profil
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&amp;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
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
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
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
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
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
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
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
no jasný, už to mám......díky za návod

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: