Avatar billede hoppe11 Nybegynder
22. januar 2010 - 09:58 Der er 7 kommentarer og
1 løsning

event.keyCode i FF (DOM)

jeg oplever noget underligt i FF.. jeg anvender event.keyCode på to forskellige måder, men kun den ene virker i FF og begge virker i IE

denne virker:
<input type="text" onkeydown="if(event.keyCode == 13) alert('enter')">

når jeg tilføjer den i DOM virker det ikke:
var inp_txt = div_txt.appendChild(document.createElement('input'));
inp_txt.onkeydown = function()
{
    if(event.keyCode == 13) alert('enter');
}

fejl: event is not defined
Avatar billede showsource Seniormester
22. januar 2010 - 10:10 #1
Husker ikke lige koderne, men er ret sikker på at du skal ha' det indenfor appendChild()
D.v.s. lave en var for document.createElement()
Avatar billede hoppe11 Nybegynder
22. januar 2010 - 10:59 #2
synes stadig ikke helt det virker? :(

http://bogfor.electrobeat.dk/temp/_tst.php
Avatar billede intenz Novice
22. januar 2010 - 15:13 #3
Du er rendt ind i nogle cross-browser problemet. Din kode virker fint i IE og ikke i firefox.

Prøv at ændre det til:

    inp_txt.onkeydown = function(e)
    {
    var thisKey = (window.Event) ? e.which : event.keyCode;
        if(thisKey == 13) alert('enter');
    };
Avatar billede hoppe11 Nybegynder
23. januar 2010 - 08:42 #4
smukt! :)

smid et svar intenz
Avatar billede hoppe11 Nybegynder
23. januar 2010 - 08:51 #5
men hvordan får jeg det så integreret med 'e' i HTML versionen? hvordan får jeg den 'e' parameter med i onkeypress funktionen?

vil gerne gøre det "korrekt" begge steder
Avatar billede intenz Novice
23. januar 2010 - 09:31 #6
Jeg håber ikke, at du mener at du indsætte al javascript koden i et onkeydown attribute på input elementet?

Du bør lave den funktion du vil bruge:
function minKeyDown = (e) {
    var thisKey = (window.Event) ? e.which : event.keyCode;
    if(thisKey == 13) alert('enter');
}

Og så kalde den i HTML elementet, med noget i stil med:
<input type="text" onkeydown="minKeyDown(event);">
Avatar billede intenz Novice
23. januar 2010 - 09:33 #7
Hov, nu havde jeg bare kopieret det længere oppe.
Dette:
function minKeyDown = (e) {

Skal selvfølgelig være:
function minKeyDown(e) {
Avatar billede hoppe11 Nybegynder
23. januar 2010 - 11:46 #8
tak for hjælpen.. nu spiller det :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester