Avatar billede kasseper Nybegynder
30. november 2000 - 10:50 Der er 5 kommentarer og
1 løsning

knappen holdes nede !

Jeg har et felt til et telefonnummer :
Der må ikke kunne tastes bogstaver, kun tal og mellemrum. Nedenfor ses min script, og ja jeg ved godt at jeg bare kune bruge nogle intervaller, når jeg tjecker event.keyCode, men det er også bare et lille forsøg :

function tjecknumber(a)
{
var thislenght
thislength = a.value.length - 1;
if (event.keyCode != 32 && event.keyCode != 48 &&event.keyCode != 49 &&event.keyCode != 50 &&event.keyCode != 51 &&event.keyCode != 52 &&event.keyCode != 53 &&event.keyCode != 54 &&event.keyCode != 55 &&event.keyCode != 56 &&event.keyCode != 57 &&event.keyCode != 58 &&event.keyCode != 59 &&event.keyCode != 96 &&event.keyCode != 97 &&event.keyCode != 98 &&event.keyCode != 99 &&event.keyCode != 100 &&event.keyCode != 101 &&event.keyCode != 102 &&event.keyCode != 103 && event.keyCode != 104 && event.keyCode != 105)
{a.value = a.value.slice(0,thislength);}
window.status=event.keyCode

if (a.value.length > 20)
{
    alert(\"Der må maks stå 20 tegn\");
    a.value = a.value.slice(0,20);
}

}

....


<input type=\"text\" size=\"23\" onKeyUp=\"tjecknumber(this);\">
-----------------------------
PROBLEM :
Det virker som det skal, men holder brugeren en bogstav knap nede, således at der kommer flere bogstaver, så kommer der også bogstaver i feltet, den sletter kun det sidste bogstav......
Hvordan sikres det således at alle bogstaverne slettes ?
Avatar billede starleicht Nybegynder
30. november 2000 - 11:22 #1
<script language=\"JavaScript\"><!--
function noLetter(e) {
    var myChar;

    if (document.all) {
        e = window.event;
    myChar = String.fromCharCode(e.keyCode);
    }
    else
        if (document.layers)
        var myChar = String.fromCharCode(e.which);

    if (myChar != 32 && myChar != 48 &&myChar != 49 &&myChar != 50 &&myChar != 51 &&myChar != 52 &&myChar != 53 &&myChar != 54 &&myChar != 55 &&myChar != 56 &&myChar != 57 &&myChar != 58 &&myChar != 59 &&myChar != 96 &&myChar != 97 &&myChar != 98 &&myChar != 99 &&myChar != 100 &&myChar != 101 &&myChar != 102 &&myChar != 103 && myChar != 104 && myChar != 105)
    {
        if (document.layers)
            return false;
        else if (document.all)
            e.returnValue = false
    }
}

document.onkeypress = noLetter;
//--></script>

<form>
<input type=\"text\" onKeyPress=\"return noLetter(event)\">
</form>
Avatar billede starleicht Nybegynder
30. november 2000 - 11:25 #2
Nej, det virker vist ikke, man kan heller ikke taste tal eller mellemrum.
Avatar billede starleicht Nybegynder
30. november 2000 - 11:26 #3
Jeg tror jeg giver fortabt!
Avatar billede kasseper Nybegynder
30. november 2000 - 11:53 #4
Jeg har prøvet at sætte denne event ind i mit tekst-felt og det virker, men når jeg har tastet et bogstav sletter den det sidste tal :

<input type=\"text\" size=\"23\" onKeyDown=\"tjecknumber(this);\" onKeyUp=\"tjecknumber(this);\">

Avatar billede kasseper Nybegynder
30. november 2000 - 13:09 #5
næh, den kunne jeg heller ikke få til at virke..!
Avatar billede kasseper Nybegynder
01. december 2000 - 13:27 #6
OKAY, jeg har fået det til at virke.
Jeg vil ikke poste koden her, Den er simpelt hen for rodet og grim, men jeg kan ekspertens tjeneste, i korte træk beskrive hvordan det gøres :

I KeyDown eventen, læser jeg den value der står i tekstfeltet  - 1 og gemmer den i en Global variabel.
I KeyUp eventen, tjekker jeg om det er en gyldig keyCode, hvis ja sættter jeg tekstfeltets value til min globale var, plus keyCode. Hvis ikke så sættes den lig var.

Det er sådan at hvis knappen holdes nede, vises bogstaverne, men fjernes igen når man slipper knappen, og det er aceptabelt. Så jeg lukker og takker alle der måske har brudt hovedet over 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