ugrás a tartalomhoz

Nem valid a formom, és nem ismerek más eljárást.

s_volenszki · 2007. Feb. 9. (P), 22.02
Sziasztok!

Van egy formom, amit az "Elküld" gomb megnyomására js készít elő, majd az előkészített adatokat AJAX-al dolgoztatom fel. Van radio típusú input csoport, aminek az értékét a rákattintáskor adtam át egy hidden mezőnek, és az ment el AJAX-al.

function SetAnswer(answer){
document.getElementById('valasz').value = answer;
}

<input type="radio" name="kerdes" value="1" onClick="SetAnswer(this.value);">
<input type="radio" name="kerdes" value="2" onClick="SetAnswer(this.value);">
<input type="radio" name="kerdes" value="3" onClick="SetAnswer(this.value);">
<input type="hidden" id="valasz" name="valasz" value="">
Na most ugye a validator azt mondja, hogy az input radionak nincs onClick eseménye. Hogyan lehet javascriptel, más módon (valid legyen az a fontos), böngésző függetlenül, radio csoport kiválasztott értékét feldolgozni?

Csak útmutatást kérek, légyszi, légyszi, légyszi! :-)

s_volenszki
 
1

XHTML?

BlackY · 2007. Feb. 9. (P), 22.30
Az XHTML szabvány szerint minden tulajdonság neve kisbetűs kell, hogy legyen. Szebb megoldás, hogy egy window.onload-kor lefutó JS kód helyezi el az esemény-kezelőket, nem pedig a html kódban vannak.

BlackY
2

JS kód helyezi el az esemény kezelőket.

s_volenszki · 2007. Feb. 10. (Szo), 09.21
Szia!

Valóban a nagybetű nem tetszett a validatornak. Részlezetnéd ezt a
JS kód helyezi el az esemény kezelőket.

gondolatmenetet?

s_volenszki
3

DOM

janoszen · 2007. Feb. 10. (Szo), 11.33
Hát, legegyszerűbb talán az, hogy a DOM fát manipulálod. Mondjuk, adsz egy ID-t vagy class-t az elemnek, amit le kell kezelni (ami legtöbbször úgyis van) és DOM manipulációval csinálod meg a dolgokat.
4

Rövid példakód

BlackY · 2007. Feb. 10. (Szo), 12.33
Ha ez így nem volt teljesen világos:

<body>
  <form id="aformom" action="..." method="post">
     <!-- ... -->
  </form>
</body>
Van egy ilyesmi formod, akkor ennek be tudsz állítani mindenféle eseménykezelőket (pl.: onsubmit, onclick, akármi)

document.getElementById('aformom').onsubmit = function() { alert('Elküldik a formot!'); }
document.getElementsByTagName('form')[0].onclick = function() alert('Izé'); }
Viszont arra figyelni kell, hogy amíg a DOM fában nincs benne a form, addig ez szépen elhasal, úgyhogy:

document.onload = function() {
 var option = document.getElementById('aformom').getElementsByTagName('input');
 for(var i = 0; i < option.length; i++) {
    /* Itt megnézed, hogy radio button-e, és az adott csoporthoz tartozik, ha igen, akkor beállítasz egy eseménykezelőt: option[i].onclick = SetAnswer */
    }
 }
(Érdemesebb a Prototype.js Event.observe funkcióját használni, de egyelőre megteszi)

BlackY