Avatar billede qualon1 Nybegynder
09. december 2006 - 11:32 Der er 4 kommentarer

Indsætte ved markering

Hej

Jeg er ved at lave et script som sikre at brugere ikke kan indtaste andet end tal og punktum i en input felt. Det er lykkes mig at finde et script som kan sørge for at man kun indtaster tal og punktum, men jeg vil gerne have sådan at hvis man trykker komma, så skal den erstattes af punktum. Jeg har prøvet at lave det, men mit problem er nu at punktummet indsættes i enden af indholdet i feltet, hvilket den ikke burde, men istedet hvor det komma er.

function numericOnly(allowReturnKey) {
    var theField = window.event.srcElement;
    var theKey = window.event.keyCode
    var cannotDo = false;
    if(theKey == 44) {
        window.event.returnValue = false;
        theField.value += ".";
        theKey = 46;
    }
   
    if (allowReturnKey)
    {
        if ((theKey < 48 || theKey > 57) && (theKey != 13) && (theKey != 46))
            cannotDo = true;
    }
    else
    {
        if ((theKey < 48 || theKey > 57) && (theKey != 46))
            cannotDo = true;
    }
    if (cannotDo)
    {
        theField.focus();
        window.event.returnValue = false;
    }
}

kaldes med:  onkeypress="numericOnly(true);"
Avatar billede jokkejensen Novice
09. december 2006 - 14:05 #1
i stedet for bare at ligge punktum til enden afstregen :


theField.value += ".";


Ville jeg replace i stedet for... alstå er statte alle komma'er med punktum

/JJ
Avatar billede qualon1 Nybegynder
09. december 2006 - 14:19 #2
nej fandt en bedre løsning.
if(theKey == 44) {
    window.event.keyCode = 46;
    theKey = 46;
}
dette kunne gøre det
Avatar billede olebole Juniormester
11. december 2006 - 10:57 #3
<ole>

En løsning, der kun virker i én browser, er ikke bedre end ret meget  ;o)

/mvh
</bole>
Avatar billede roenving Novice
26. december 2006 - 21:37 #4
-- og ole hentyder til, at window.event kun er fuldt gyldig i IE ...

-- hvad med at fjerne ugyldige tegn ?-)

<script type="text/javascript">
function check(elm){
  elm.value = elm.value.replace(/,/g,".").replace(/[^\d\.]/g,"");
}
</script>

-- og:

<input type="text" onkeyup="check(this);" size="20">
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