webForumDet fria alternativet

onkeyup

JavaScript

8 svar · 586 visningar · startad av Web-Tor

Medlem sedan nov. 200013 890 inlägg
Frågan#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?

Medlem sedan dec. 20025 483 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.

Medlem sedan juli 20011 129 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

Medlem sedan aug. 20039 340 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.

Medlem sedan dec. 20025 483 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.

Medlem sedan nov. 200013 890 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?

Medlem sedan dec. 20025 483 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?

Medlem sedan nov. 200013 890 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);
}
Medlem sedan dec. 20025 483 inlägg
#9

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

252 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)