[HTML/JS] onpropertychange - male problemy

0

Hej, wiem ze onpropertychange dziala (chyba) tylko pod IE, ale nie mam innego pomyslu na "dynamiczna" zmiane wartosci.
(wykozystuje to w filtrze i musi dzialac on-real-time)

Dziala pieknie, ale chcialem zrobic tak zeby po przeladowaniu strony sie filtr nie kasowal, no dalem ciacha...
Ale jest maly problem:

<input id="idid" name="idid" type="text" value="" onpropertychange="zmien(this.value)">
<script language="JavaScript" type="text/javascript">
function zmien(text) {
    setCookie('cos', text);
    alert(text);
}
document.getElementById('idid').value = get_cookie('cos');
</script>

Oczywiscie po przeladowaniu strony wyskakuje alert z tym co bylo poprzednio... ale zachowuje sie to troche dziwnie:

  1. jak jest pole jest puste, to gdy chce cos wpisac to alert wyskakuje za kazdym razem (tak jak powinien)
  2. ale jak pole nie jest puste (cos wpisal z cookie), to pierwsze nacisniecie klawisza nie generuje zdarzenia onpropertychange :/ Pozniej dziala juz poprawnie...
    Probowalem wywolac zdarzenie recznie, kilka razy je wywolywalem... i nic, zawsze zachowuje sie tak samo [glowa]

Ma ktos jakis pomysl na to??

(setCookie i get_cookie dobrze sie zachowuje i nie mialem nigdy z nimi klopotu wiec watpie ze to ich wina, dlatego kodu nie zamieszczam)

Ten skrypt bedzie dzialal tylko dla wybranej grupy osob, ktore uzywaja IE, wiec nie ma problemu :>
Ale jak ktos ma pomysla jak zrobic zeby onpropertychange dzialal na FF to tez nich napisze ;)

0

a może onchange albo onkeydown?

0
drake napisał(a)

a może onchange albo onkeydown?

onchange - jest wywolywane jak kontrolka straci focus'a, czyli nie bylo by on-real-time
onkeydown - jak odczytam zawartosc kontrolki nie jest jeszcze uwzgledniany klawisz kotry naciskam (tzn jak jest "ala" i nacisne "a" to zwroci mi "ala" a nie "alaa")

0

no to onkeyup albo najlepiej settimeout

0

albo onkeypress

0

Adamo, taki prosty kod
<input type="text" value="" onchange="alert('onchange: '+this.value);" onpropertychange="alert('onpropertychange: '+this.value);" onkeypress="alert('onkeypress: '+this.value);">

Drake, no masz pomysla, onkeyup dziala, w paru specyficznych przypadkach sie nie wywoluje, ale to mozna olac
Jutro zaimplementuje i zobacze jak dziala ;)

0 użytkowników online, w tym zalogowanych: 0, gości: 0