Avatar billede vraa Nybegynder
17. marts 2004 - 13:04 Der er 11 kommentarer og
3 løsninger

keyCode problem

Jeg er ved at lave en tæller der tæller ned fra 111 ved onkeydown i et textarea. Men den tæller også når der trykkes på ctrl, shift, caps lock osv.

Hvis man har skrevet noget og klikker på backspace tæller den én ned. Men der er kun første gang. Det betyder så at tælleren er -1 i forhold til det rigtige antal karakterer i feltet.

Jeg håber at der er en der ligger inde med et script til at isolere de taster som skal bruges til at tælle ned og sørge for at tælle rigtig ved backspace.
Avatar billede mm12010 Nybegynder
17. marts 2004 - 13:20 #1
hvis du nu bare aflæser længden af det brugeren har intastet med:

  document.FORMNAVN.FORMFELT.value.length

i stedet for regne det ud, burde problemet være løst...
Avatar billede medions Nybegynder
17. marts 2004 - 13:21 #2
pr'v at brug onkeypress istedet for!

//>Rune
Avatar billede vraa Nybegynder
17. marts 2004 - 13:25 #3
mm12010>> den bruger jeg også.

medions>> det hjalp desværre ikke. Nu tæller den slet ikke ved backspace.
Avatar billede mm12010 Nybegynder
17. marts 2004 - 13:27 #4
må vi se?
Avatar billede medions Nybegynder
17. marts 2004 - 13:28 #5
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
    <title>Untitled</title>
<script language="JavaScript">
function Tjek(key) {
    if (key == 8) {
            //alert('test');
        document.getElementById("counter").innerHTML = parseInt(document.getElementById("counter").innerHTML) +1;
    } else {
    if (key != 9) {
        //alert(key);
        document.getElementById("counter").innerHTML = parseInt(document.getElementById("counter").innerHTML) -1;
    }
    }
}
</script>
</head>

<body>

<span id="counter">111</span>
<textarea name="test" onkeypress="Tjek(event.keyCode);"></textarea>

</body>
</html>

//>Rune
Avatar billede vraa Nybegynder
17. marts 2004 - 13:49 #6
Medions>> nu er problemet med ctrl, shift osv løst. Men den opdaterer stadig ikke ved backspace.
Avatar billede medions Nybegynder
17. marts 2004 - 13:50 #7
Hvad mener du med den i ikke opdataere ved backspace? -bruger du min kode?

//>Rune
Avatar billede vraa Nybegynder
17. marts 2004 - 13:52 #8
Jep. Den tæller fint nedad, men tæller ikke opad igen ved backspace
Avatar billede medions Nybegynder
17. marts 2004 - 13:54 #9
Er du sikker på du bruger den kode jeg sendte til dig, altså:

<html>
<head>
    <title>Untitled</title>
<script language="JavaScript">
function Tjek(key) {
    if (key == 8) {
            //alert('test');
        document.getElementById("counter").innerHTML = parseInt(document.getElementById("counter").innerHTML) +1;
    } else {
    if (key != 9) {
        //alert(key);
        document.getElementById("counter").innerHTML = parseInt(document.getElementById("counter").innerHTML) -1;
    }
    }
}
</script>
</head>

<body>

<span id="counter">111</span>
<textarea name="test" onkeypress="Tjek(event.keyCode);"></textarea>

</body>
</html>

For her hos mig virker det fintfint!

//>Rune
Avatar billede vraa Nybegynder
17. marts 2004 - 13:57 #10
Jeg ved ikke hvad der er galt, men når jeg skriver noget i textarea-feltet tæller den fint ned fra 111. Men hvis jeg sletter det jeg har skrevet bliver tælleren ikke opdateret.
Avatar billede medions Nybegynder
17. marts 2004 - 14:01 #11
Prøv sådan her så:

<html>
<head>
    <title>Untitled</title>
<script language="JavaScript">
function Tjek(key) {
    if (key == 8) {
        document.getElementById("counter").innerHTML = parseInt(document.getElementById("counter").innerHTML) +1;
    }
   
    if (key != 9 && key !=8) {
        document.getElementById("counter").innerHTML = parseInt(document.getElementById("counter").innerHTML) -1;
    }
}
</script>
</head>

<body>

<span id="counter">111</span>
<textarea name="test" onkeypress="Tjek(event.keyCode);"></textarea>

</body>
</html>


//>Rune
Avatar billede vraa Nybegynder
17. marts 2004 - 14:07 #12
Desværre... Den tæller f.eks. ned til 94. Når man så sletter det hele og skriver noget andet tæller den videre fra 94.
Avatar billede vraa Nybegynder
17. marts 2004 - 14:09 #13
Det jeg har nu ser således ud:

        if (document.xx.title.value.length > 110) {
                alert('Title må kun indeholde 111 karakterer');
                forMange = document.xx.title.value.length - 111;
                document.xx.title.value = document.xx.title.value.substring(0,document.xx.title.value.length-forMange-1);
                temp = 111 - document.xx.title.value.length;
                document.all('titleTaeller').innerHTML = '<strong>' + temp + '</strong> karakterer tilbage';
                return false;
        }
        temp = 110 - document.xx.title.value.length;
        document.all('titleTaeller').innerHTML = '<strong>' + temp + '</strong> karakterer tilbage';
        return true;
Avatar billede vraa Nybegynder
03. november 2004 - 10:21 #14
Vi deler medions som tak for anstrengelserne. Tak for hjælpen.
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