Avatar billede mini41 Nybegynder
04. april 2003 - 07:49 Der er 3 kommentarer og
2 løsninger

onchange så skriv ,00 ?

Hvordan kan jeg i mit form input gøre så hvis brugeren skriver 488 ændres det til 488,00 men hvis han skriver 488,5 ændres det til 488,50 og ved 488,00 skal det ikke ændres ?

Sådan ser mit input ud idag:

NAME="reservedel1pris " NAME="reservedel1pris " onKeyUp="this.value = this.value.replace(',', '.'); addtal(this.form);" SIZE="10"
Avatar billede fennec Nybegynder
04. april 2003 - 11:50 #1
noget i denne retning.

if(reservedel1pris.charAT(reservedel1pris.length-1)==',')
  reservedel1pris = reservedel1pris + '0';
else
  if(reservedel1pris.charAT(reservedel1pris.length-2)!=',')
    reservedel1pris = reservedel1pris + ',00';

husk "document.form." foran reservedel1pris
Jeg synes ikke det er optimal at lave en onKeyUp da man så laver et tjeck hver gang man trykker på en tast. Jeg ville foretrække at lave alle tjeck på submit, og derefter gøre brugeren opmærksom på fejl.
Avatar billede grunken Nybegynder
04. april 2003 - 14:31 #2
denne her funktion sætter altid 2 decimaler uanset hvordan tallet ser ud :

function toDecimaler ( tal ) {
    if ( typeof( tal ) == String ) tal = parseFloat( tal );
    talTx = "_" +Math.round( 100.0*tal ) +"_"
    if ( talTx.length < 5 ) {
        preZero = "_000";
        talTx = preZero.substring(0,6-talTx.length) +talTx.substring(1);
    };
    talTx = talTx.substring(1,talTx.length-3) +","
            + talTx.substring(talTx.length-3,talTx.length-1);
    return talTx;
};

Men hvis vi skal hjælpe dig 100% må du nok hellere vise os lidt af din anden kode :)

-grunken
Avatar billede mini41 Nybegynder
04. april 2003 - 15:14 #3
hejsa, jeg bruger dette script og kunne godt tænke mig hvis du kunne 'proppe' dit script ind i det :)

<!--
function timetal(form){
    var t1 = parseFloat(form.reptimer.value);
    var t2 = parseFloat(form.timepris.value);
    tal = String(Math.round(t1 * t2 * 100)/100);
    tal = ((tal.indexOf(".") == -1) ? tal + ",00" : tal);
    tal = ((tal.indexOf(".") == tal.length-2) ? tal + "0" : tal);
    tal = tal.replace(/\./gi,",");
    form.reparb.value = tal;
    return true;
    }
//-->
Avatar billede grunken Nybegynder
04. april 2003 - 15:40 #4
sådan her, den nemme måde at løse det på :)

<script language="javascript">
function toDecimaler ( tal ) {
    if ( typeof( tal ) == String ) tal = parseFloat( tal );
    talTx = "_" +Math.round( 100.0*tal ) +"_"
    if ( talTx.length < 5 ) {
        preZero = "_000";
        talTx = preZero.substring(0,6-talTx.length) +talTx.substring(1);
    };
    talTx = talTx.substring(1,talTx.length-3) +","
            + talTx.substring(talTx.length-3,talTx.length-1);
    return talTx;
}

function timetal(form){
    var t1 = parseFloat(form.reptimer.value);
    var t2 = parseFloat(form.timepris.value);
    tal = String(Math.round(t1 * t2 * 100)/100);
    form.reparb.value = toDecimaler(tal);
    return true;
}
</script>

-grunken
Avatar billede mini41 Nybegynder
09. april 2003 - 16:06 #5
Nope det virker ikke, jeg finder på noget andet, du får halvdelen af points som tak for svar.
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