ugrás a tartalomhoz

szövegmező események

whiteman0524 · 2009. Okt. 11. (V), 00.36
Üdv !

Nah egy elég furfangos problémám van megint :) Szóval van egy szövegmezőm, és figyelni akarom ha a felhasználó változtatja a tartalmát, magyarul ha gépel bele, vagy töröl éppen. Ez azért kéne, mert ekkor egy változó tartalmát dinamikusan változtatnom kéne, aképpen hogy mi az aktuális string a szövegmezőben. Nah ezt hogy lehetne megoldani ?

Tudom hogy van az onChange esemény de az nekem nem jó, mert ahhoz el is kell veszteni a fókuszt hogy életbe lépjen. Én pedig dinamikusságot akarok. Arra gondoltam hogy esetleg valahogy a onfocus és az onkeypress eseményt kéne ötvözni. Tehát hogy HA fókuszba van a szövegmező ÉS billentyűt ütnek le akkor....De ezt nem tudom ki lehet-e vitelezni valahogy...

Ha valaki tudna segíteni nagyon örülnék neki, és előre is köszönöm :) Addigis üdv !
 
1

keypress elég

vbence · 2009. Okt. 11. (V), 08.55
Ha nincs fókuszban, akkor nem is fogja megkapni az eseményeket.
2

Többféleképpen is

rrd · 2009. Okt. 11. (V), 10.44
Többféleképpen is megoldható.

1) Globális eseménykezeléssel a leghatékonyabb. Azaz hozzácsatolsz egy keypress eseménykezelőt a documentum ojjektumhoz. Az eseménykezelő függvény megvizsgálja, hogy az elkapott esemény target tulajdonsága a szóban forgó input mező-e. Ha igen akkor megcsinálja amit kell.

2) Ebben az esetben azonban én a keypress helyett az input eseményt vizsgálnám inkább magán az adott input elemen valahogy így (prototype keretrendszer esetén):
var azInput = $('azInput');
Event.observe(azInput, 'input', inputKezelo);

inputKezelo : function(){
   //amit csinálnia kéne
}
3

Köszönöm

whiteman0524 · 2009. Okt. 11. (V), 14.07
Nagyon örülök hogy többféleképpen is meg lehetne oldani, de nem használok sajnos prototype keretrendszert. Én a mezei nyers JavaScriptre gondoltam. Szóval ha úgy le tudnád írni esetleg a fönti példát az nagyon jó lenne :) Az input eseményről még nem is halottam.

Edit : közbe rájöttem, hogy van az onkeydown vagy a press esemény is :D
4

A "mezei nyers JavaScript" :

mgergo90 · 2009. Okt. 12. (H), 10.43

<script>
  function js_func() {
    var input_tartalom = document.getElementById('your_input').value;
    // itt pedig amit csinálni akarsz vele
  }
</script>
<input type="text" onkeypress="js_func()" id="your_input">
Ha hosszú kód fut le a feldolgozó függvényben, akkor érdemes egy vizsgálatot végezni hogy változott e a szöveg.
5

A hosszú kód dolgot megfogadom :)

whiteman0524 · 2009. Okt. 12. (H), 20.24
Igen elég "hosszú" a kódom... Pontosabban egy egyre növekvő tömbön kell végigszáguldozni melynek objektumok az elemei. Szóval az ötlet nem rossz :-) Erre eddig nem is gondoltam.