webForumDet fria alternativet

onkeyup

8 svar · 584 visningar · startad av Web-Tor

Web-TorMedlem sedan nov. 200011 794 inlägg
#1

Jag har ett textfält.
När man ändrar värde i textfältet skall en js-funktion triggas.

Jag har bara testat i Explorer 6 och där fungerar onkeyup precis som jag vill, men hur är stödet i andra webbläsare?

Peter SMedlem sedan dec. 20025 484 inlägg
#2

Det beror på vad du vill skall ingå i "andra" ;)

Generellt skulle jag dock vilja påstå att stödet är gott.

KoplikMedlem sedan juli 2001826 inlägg
#3

Hittade den här länken genom google:
http://reference.sitepoint.com/html/event-attributes/onkeyup

Verkar hursomhelst vara rätt bra stöd för detta event

nitro2k01Medlem sedan aug. 20037 630 inlägg
#4

Se upp med event-objektet! Andra läsare stödjer inte detta, utan ger ett event-objekt som funktionsargument istället. Dessutom gav mitt snabba test jag gjorde nu att vissa tangenter (+, å, ö, - och resterande tangenter höger om dessa) gav olika nummer tillbaka. Om du bara är ute efter att känna av att en tangent har släppts (istället för onchange) så funkar onkeyup utmärkt.

Peter SMedlem sedan dec. 20025 484 inlägg
#5

Som sagt, stödet för onkeyup är utmärkt även i andra läsare. Sedan att de implementerar eventet olika är ju en helt annan sak.

Web-TorMedlem sedan nov. 200011 794 inlägg
#6

Peter S skrev:

Som sagt, stödet för onkeyup är utmärkt även i andra läsare. Sedan att de implementerar eventet olika är ju en helt annan sak.

Det enda som skall matas in i fältet är en siffra. Vad bör jag tänka på för att säkerställa att funktionaliteten går hem i så många webbläsare som möjligt?

Peter SMedlem sedan dec. 20025 484 inlägg
#7

Om du vill komma åt någonting från eventdatat (t.ex. vilken tangent användaren tryckte på) måste du göra några justeringar:

<input onkeyup="f([red]event[/red])">

function f(e)
{
  e = window.event || e;
  if (e)
  {
    alert(e.keyCode);
  }
}

Ovan skickas event in som argument till f så att ex. FF och Opera blir nöjda. Hade koden endast varit för IE hade du kunnat gå mot window.event direkt.

Hur tar du reda på om fältets värde ändrats?

Web-TorMedlem sedan nov. 200011 794 inlägg
#8

Tack, det är precis sånt här jag är ute efter.
Jag hade tänkt mig något sånt här:

<input onkeyup="f(this.value)">

function f(qty){
   alert("Det nya antalet är: " + qty);
}
Peter SMedlem sedan dec. 20025 484 inlägg
#9

Ja, det där skall inte vara några problem.

Genererad på 408 ms · cache AV · v20260730165559-full.f96bc7eb