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?
8 svar · 584 visningar · startad av Web-Tor
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?
Det beror på vad du vill skall ingå i "andra" ;)
Generellt skulle jag dock vilja påstå att stödet är gott.
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
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.
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.
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?
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?
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);
}
Ja, det där skall inte vara några problem.