Avatar billede c-lund Nybegynder
26. juni 2006 - 18:13 Der er 12 kommentarer og
1 løsning

Afrund tal

Jeg benytter følgende funktion. men hvis nu man skrive bogstaver eller andet i feltet, skriver den NaN, hvordan laver man det om til f.eks. Det indtastede er ikke et tal

<SCRIPT language="JavaScript">
function afrund(tal){
tal = parseInt(tal);
resultat = tal;
indtastning.Pris.value = resultat;
}
</SCRIPT>
<input type="text" name="Pris" size="20" value="<%=Pris%>" onblur="afrund(indtastning.Pris.value);return false">
Avatar billede nielle Nybegynder
26. juni 2006 - 18:28 #1
Et bud:

<SCRIPT language="JavaScript">
function afrund(tal)
{
    tal = parseInt(tal);
    resultat = tal;
    if (resultat == NaN)
        resultat = "Det indtastede er ikke et ta";
    indtastning.Pris.value = resultat;
}
</SCRIPT>
Avatar billede arne_v Ekspert
26. juni 2006 - 18:33 #2
JS har en isNan funktion som nok maa anbefales
Avatar billede arne_v Ekspert
26. juni 2006 - 18:34 #3
(NaN==NaN returnerer false)
Avatar billede c-lund Nybegynder
26. juni 2006 - 18:38 #4
ja, det andet virkede ikke. hvordan virker isNan?
Avatar billede plazm Nybegynder
26. juni 2006 - 18:38 #5
<script type="text/javascript">
function afrund(elm){
  elm.value=(!isNaN((n=parseInt((r=elm.value))))?n:"Ikke et tal");
}
</script>
<input type="text" name="Pris" size="20" value="<%=Pris%>" onblur="afrund(this);">
Avatar billede c-lund Nybegynder
26. juni 2006 - 18:41 #6
super, tak
Avatar billede nielle Nybegynder
26. juni 2006 - 18:44 #7
Hmmm, burde arne_v egentlig ikke have haft en portion af de point?
Avatar billede plazm Nybegynder
26. juni 2006 - 18:45 #8
jo, jeg opretter lige et spørgsmål til ham, desuden så ville jeg enten bruge:
<script type="text/javascript">
function afrund(elm){
  elm.value=(!isNaN(Math.round((n=(r=elm.value)).replace(",",".")))?n:"Ikke et tal");
}
</script>
<input type="text" name="Pris" size="20" value="<%=Pris%>" onblur="afrund(this);">

eller

<script type="text/javascript">
function afrund(elm){
  elm.value=(!isNaN(Math.floor((n=(r=elm.value)).replace(",",".")))?n:"Ikke et tal");
}
</script>
<input type="text" name="Pris" size="20" value="<%=Pris%>" onblur="afrund(this);">

i stedet, alt efter om den også skal runde op hvis der er ,5 eller over.
Avatar billede plazm Nybegynder
26. juni 2006 - 18:46 #9
<script type="text/javascript">
function afrund(elm){
  elm.value=(!isNaN(Math.round(parseFloat((n=(r=elm.value)))))?n:"Ikke et tal");
}
</script>
hvis det skal være helt korrekt.
Avatar billede nielle Nybegynder
26. juni 2006 - 18:48 #10
Personligt er jeg ikke vild med at kode absolut skal presses ind i one-liners:

Koden:

<SCRIPT language="JavaScript">
function afrund(tal)
{
    tal = parseInt(tal);
    resultat = tal;
    if (isNaN(resultat))
        resultat = "Det indtastede er ikke et tal";
    indtastning.Pris.value = resultat;
}
</SCRIPT>

- er efter min mening betydelige lettere at læse, og dermed også at vedligeholde.
Avatar billede plazm Nybegynder
26. juni 2006 - 18:48 #11
Avatar billede plazm Nybegynder
26. juni 2006 - 18:50 #12
<script type="text/javascript">
function afrund(elm){
  r = parseFloat(elm.value);
  n = Math.floor(r);
  elm.value= (!isNaN(n)) ? n : "Ikke et tal";
}
</script>
<input type="text" name="Pris" size="20" value="<%=Pris%>" onblur="afrund(this);">
Avatar billede c-lund Nybegynder
26. juni 2006 - 18:51 #13
hmm, jo, det tænke jeg ikke lige over, men der ser ud til at være styr på det nu. tak
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