Avatar billede ingeman Seniormester
19. februar 2007 - 19:07 Der er 52 kommentarer og
1 løsning

Hvordan kører man det med for løkke ?

var Antalkg = document.UserForm.Antalkg1.value
    var Prkg = document.UserForm.Prkg1.value
    var Total = Antalkg * Prkg

    var Antalkg = document.UserForm.Antalkg2.value
    var Prkg = document.UserForm.Prkg2.value
    var Total = Antalkg * Prkg

    var Antalkg = document.UserForm.Antalkg3.value
    var Prkg = document.UserForm.Prkg3.value
    var Total = Antalkg * Prkg

Jeg skal have det lavet mere enkelt med en for løkke fra 1 til 10
Avatar billede thesurfer Nybegynder
19. februar 2007 - 19:13 #1
Man kunne f.eks. bruge eval, men man kunne også checke om navnet, som enten starter med "Antalkg" eller "Prkg"..

Hmm.. Har jeg ikke hjulpet med den form før..? :-)

Jeg synes at jeg kan huske navnene på felterne i formen..
Avatar billede simplus Nybegynder
19. februar 2007 - 19:16 #2
Tja har ikke forstand på javascript, men ideen er jo den samme i alle sprog.

Du laver simpelthen en variabel som indeholder et 1 tal til at starte med. Det tal bruger du i hvert navn - fx Prkg$var.value - jeg bruger $var til at vise hvad jeg mener fordi jeg arbejder med php!

ved enden af løkken siger du bare $var = $var+1; hvilket forøger dit antal for hver gang løkken køres.

Så skal du i selve for løkken skriver at den skal køre indtil variablen er ligmed 10. Når den er det jamen så har du opnået det du ville.

Håber du kan se logikken :-)
Avatar billede ingeman Seniormester
19. februar 2007 - 19:22 #3
Det mener jeg ikke - hvordan skal koden se ud ?
Avatar billede thesurfer Nybegynder
19. februar 2007 - 19:26 #4
Jeg har engang fået at vide, at eval (som nævnt i mit første indlæg) er ressource-krævende, selvom man egentligt ikke kan mærke noget..

Men jeg kan da godt prøve at lave et eksempel til dig..
Avatar billede thesurfer Nybegynder
19. februar 2007 - 19:27 #5
Hvordan ser din form ud?
Avatar billede simplus Nybegynder
19. februar 2007 - 19:30 #6
ingeman, som jeg nævnte før er jeg en PHP'er og derfor er det begrænset hvad jeg kan gøre. Dog er jeg bekendt med javascript og jeg ved at strukturen _kan_ være nogenlunde ens i visse tilfælde så jeg har lavet et blandet script som måske viser hvad jeg mente før:


<?php
for($i = 0; $i < 10; $i++) {

echo $i."<br>";

}
?>

Ellers er der ikke meget jeg kan gøre desværre :-)
Avatar billede ingeman Seniormester
19. februar 2007 - 19:32 #7
function DoCalc(){

    document.UserForm.Antalkg1.value = document.UserForm.Antalkg1.value.replace(/,/,".")
    document.UserForm.Prkg1.value = document.UserForm.Prkg1.value.replace(/,/,".")

    var Antalkg = document.UserForm.Antalkg1.value
    var Prkg = document.UserForm.Prkg1.value
    var Total = Antalkg * Prkg

    var a = new ToFmt(Total);
    document.UserForm.Totbl1.value = a.fmtF(13,2);
   
    document.UserForm.totalbl.value = a.fmtF(13,2);
}



<FORM action="faxenter.asp" method="POST" name="UserForm" onSubmit="return testdata(this)">

<%for n=1 to 10%>
                    <table width=100% style="width:700px;"  border=0 cellspacing=0 cellpadding=0>
                        <tr>
                            <td width="25%" align=left><font face="Verdana" size="2" color="#0000FF"><INPUT TYPE="text" class="inputs3"  name="Varetekst<%=n%>"  value="" TabIndex="<%=n*3-2%>"></td>
                            <td width="25%" align=right><font face="Verdana" size="2" color="#0000FF"><INPUT TYPE="text" onchange="DoCalc()" class="inputs3"  name="Antalkg<%=n%>"  value="" style="text-align:center;" TabIndex="<%=n*3-1%>"></td>
                            <td width="25%" align=right><font face="Verdana" size="2" color="#0000FF"><INPUT TYPE="text" onchange="DoCalc()" class="inputs3"  name="Prkg<%=n%>"  value="" style="text-align:center;" TabIndex="<%=n*3%>"></td>
                            <td width="25%" align=right><font face="Verdana" size="2" color="#0000FF"><INPUT readonly  class="inputs3"  name="Totbl<%=n%>"  value=""  style="text-align:right;"></td>
                        </tr>
                    </table>
                <%next%>

</form>

java functionen skal regne ud hvad Totbl er ?
Avatar billede thesurfer Nybegynder
19. februar 2007 - 19:34 #8
Eksempel:

<script type="text/JavaScript" language="JavaScript">

function udregn()
{
    f = document.UserForm;
    total = 0;
    for(i=1; i < 3 + 1; i++) /* jeg har kun 3 felter.. det ændrer du bare til 10 */
    {
        antal = parseInt( eval("f.Antalkg" + i + ".value") );
        pr = parseInt( eval("f.Prkg" + i + ".value") );
        total += antal * pr;
    }
    alert("Total er: " + total);
}

</script>

<form name="UserForm">
Antal: <input type="text" name="Antalkg1" value="1">
Pr. kg: <input type="text" name="Prkg1" value="2">
<br>
Antal: <input type="text" name="Antalkg2" value="3">
Pr. kg: <input type="text" name="Prkg2" value="4">
<br>
Antal: <input type="text" name="Antalkg3" value="5">
Pr. kg: <input type="text" name="Prkg3" value="6">
<br><br>
<input type="button" onclick="udregn()" value="udregn">
</form>
Avatar billede thesurfer Nybegynder
19. februar 2007 - 19:36 #9
Rettelse (nu med "float" så der kan bruges kommatal):

<script type="text/JavaScript" language="JavaScript">

function udregn()
{
    f = document.UserForm;
    total = 0;
    for(i=1; i < 3 + 1; i++) /* jeg har kun 3 felter.. det ændrer du bare til 10 */
    {
        antal = parseFloat( eval("f.Antalkg" + i + ".value") );
        pr = parseFloat( eval("f.Prkg" + i + ".value") );
        total += antal * pr;
    }
    alert("Total er: " + total);
}

</script>

<form name="UserForm">
Antal: <input type="text" name="Antalkg1" value="1">
Pr. kg: <input type="text" name="Prkg1" value="2">
<br>
Antal: <input type="text" name="Antalkg2" value="3">
Pr. kg: <input type="text" name="Prkg2" value="4">
<br>
Antal: <input type="text" name="Antalkg3" value="5">
Pr. kg: <input type="text" name="Prkg3" value="6">
<br><br>
<input type="button" onclick="udregn()" value="udregn">
</form>
Avatar billede ingeman Seniormester
19. februar 2007 - 19:37 #10
jeg har 4 felter varetekst,antalkg,prkg,totbl - totbl skal beregnes med DoCalc() osv.

til slut skal alle TOTBL1 til TOTBL10 regnes sammen til totalbeløb.
Avatar billede thesurfer Nybegynder
19. februar 2007 - 19:37 #11
Man kunne også bare løbe formens elementer igennem, og arbejde med dem der begynder med enten "Antalkg" eller "Prkg"..

Så kunne man smide dem i en array, som gange dem igennem..
Avatar billede thesurfer Nybegynder
19. februar 2007 - 19:39 #12
Hmm... ok :-)

Det kan man også..

Med andre ord, du viser faktisk brugeren, hvad værdierne fra Antalkg, Prkg og total, inden man klikker på DoCalc, som så lægger total'erne sammen?
Avatar billede thesurfer Nybegynder
19. februar 2007 - 19:40 #13
Eller?:

Brugeren kan se Antalkg og Prkg, men total'erne for hver eneste vare vises først, når man klikker på DoCalc, der også ligger total'erne sammen..? :)
Avatar billede thesurfer Nybegynder
19. februar 2007 - 19:41 #14
Det ville egentligt være meget nemmere, hvis du lagde siden online, og gav os et link.. så kunne vi selv vurdere hvilke oplysninger vi har brug for.. :-)
Avatar billede thesurfer Nybegynder
19. februar 2007 - 19:42 #15
Hvor langt er vi kommet med dette spørgsmål..? :-)
Avatar billede thesurfer Nybegynder
19. februar 2007 - 19:43 #16
Doh! Forkert spørgsmål :-)
Avatar billede ingeman Seniormester
19. februar 2007 - 19:45 #17
den siger at total = Nan
Avatar billede ingeman Seniormester
19. februar 2007 - 19:45 #18
de tal jeg bruger er 12.50 osv
Avatar billede thesurfer Nybegynder
19. februar 2007 - 19:46 #19
ingeman> Nu hvor jeg har dig, kan du ikke lige kigge ind til dine oprettede spørgsmål?:

http://www.eksperten.dk/list.phtml?sort=&order=DESC&status_1=on&status_2=on&spm_creator=ingeman&spm_part=&spm_answer=&find=&engine=exp

Du har 16 af dem (inkl dette spm), og nogen af dem er ret gamle.. giv points til dem der fortjener det.. Så er der større chance for at du får hjælp i fremtiden..
Avatar billede ingeman Seniormester
19. februar 2007 - 19:57 #20
er sket - den siger at total = Nan -de tal jeg bruger er 12.50 osv
Avatar billede thesurfer Nybegynder
19. februar 2007 - 20:01 #21
Hvordan ser din kode ud nu? Jeg skal først vide hvilken kode du bruger.. ellers kan jeg ikke vide hvad der går galt..

Noget må gå galt, for jeg fik 44 med de givne værdier, og fik 45.6 da jeg erstattede værdien i Antalkg1 med "1.8"..
Avatar billede ingeman Seniormester
19. februar 2007 - 20:03 #22
function DoCalc(){

    document.UserForm.Antalkg1.value = document.UserForm.Antalkg1.value.replace(/,/,".")
    document.UserForm.Prkg1.value = document.UserForm.Prkg1.value.replace(/,/,".")

    var Antalkg = document.UserForm.Antalkg1.value
    var Prkg = document.UserForm.Prkg1.value
    var Total = Antalkg * Prkg

    var a = new ToFmt(Total);
    document.UserForm.Totbl1.value = a.fmtF(13,2);
   
    udregn();
}

function udregn()
{
    f = document.UserForm;
    total = 0;
    for(i=1; i < 3 + 1; i++) /* jeg har kun 3 felter.. det ændrer du bare til 10 */
    {
        antal = parseFloat( eval("f.Antalkg" + i + ".value") );
        pr = parseFloat( eval("f.Prkg" + i + ".value") );
        total += antal * pr;
    }
    alert("Total er: " + total);
}
Avatar billede ingeman Seniormester
19. februar 2007 - 20:05 #23
<%for n=1 to 10%>
                    <table width=100% style="width:700px;"  border=0 cellspacing=0 cellpadding=0>
                        <tr>
                            <td width="25%" align=left><font face="Verdana" size="2" color="#0000FF"><INPUT TYPE="text" class="inputs3"  name="Varetekst<%=n%>"  value="" TabIndex="<%=n*3-2%>"></td>
                            <td width="25%" align=right><font face="Verdana" size="2" color="#0000FF"><INPUT TYPE="text" onchange="DoCalc()" class="inputs3"  name="Antalkg<%=n%>"  value="" style="text-align:center;" TabIndex="<%=n*3-1%>"></td>
                            <td width="25%" align=right><font face="Verdana" size="2" color="#0000FF"><INPUT TYPE="text" onchange="DoCalc()" class="inputs3"  name="Prkg<%=n%>"  value="" style="text-align:center;" TabIndex="<%=n*3%>"></td>
                            <td width="25%" align=right><font face="Verdana" size="2" color="#0000FF"><INPUT readonly  class="inputs3"  name="Totbl<%=n%>"  value=""  style="text-align:right;"></td>
                        </tr>
                    </table>
                <%next%>
Avatar billede thesurfer Nybegynder
19. februar 2007 - 20:12 #24
Hmm...

Det er sikkert pga disse linier:

    document.UserForm.Antalkg1.value = document.UserForm.Antalkg1.value.replace(/,/,".")
    document.UserForm.Prkg1.value = document.UserForm.Prkg1.value.replace(/,/,".")

Lav en knap der afvikler "udregn()", og kun den funktion.. ligesom i mit eksempel 19/02-2007 19:36:29..

Hvad skriver den så?
Avatar billede ingeman Seniormester
19. februar 2007 - 20:16 #25
Nej det var ikke det ?
Avatar billede thesurfer Nybegynder
19. februar 2007 - 20:17 #26
Får du nogen reelle fejlmeddelelser, eller siger den bare "Total: NaN" ?
Avatar billede ingeman Seniormester
19. februar 2007 - 20:20 #27
kun det !
Avatar billede thesurfer Nybegynder
19. februar 2007 - 20:21 #28
Det giver ikke nogen mening..

Kan du få følgende til at virke (opret filen test.htm og smid koden ind i den):

<script type="text/JavaScript" language="JavaScript">

function udregn()
{
    f = document.UserForm;
    total = 0;
    for(i=1; i < 3 + 1; i++) /* jeg har kun 3 felter.. det ændrer du bare til 10 */
    {
        antal = parseFloat( eval("f.Antalkg" + i + ".value") );
        pr = parseFloat( eval("f.Prkg" + i + ".value") );
        total += antal * pr;
    }
    alert("Total er: " + total);
}

</script>

<form name="UserForm">
Antal: <input type="text" name="Antalkg1" value="1">
Pr. kg: <input type="text" name="Prkg1" value="2">
<br>
Antal: <input type="text" name="Antalkg2" value="3">
Pr. kg: <input type="text" name="Prkg2" value="4">
<br>
Antal: <input type="text" name="Antalkg3" value="5">
Pr. kg: <input type="text" name="Prkg3" value="6">
<br><br>
<input type="button" onclick="udregn()" value="udregn">
</form>
Avatar billede ingeman Seniormester
19. februar 2007 - 20:24 #29
function udregn1()
{
    f = document.UserForm;
    total = 0;
        antal = parseFloat(eval("f.Antalkg1.value"));
        pr = parseFloat(eval("f.Prkg1.value"));
        total += antal * pr;
    alert("Total er: " + total);
}

den her kommer med rigtig resultat - det må være noget med for løkken ?
Avatar billede thesurfer Nybegynder
19. februar 2007 - 20:29 #30
Det forstår jeg ikke.. med mindre at du har sat "i < X", hvor "X" er et større tal end antallet af dine felter.. ?

Det giver ikke nogen mening, da jeg har kopieret koden direkte fra mit eksempel der virker! :-)

Lav en HELT NY FIL, med følgende kode :-)

<script type="text/JavaScript" language="JavaScript">

function udregn()
{
    f = document.UserForm;
    total = 0;
    for(i=1; i < 3 + 1; i++) /* jeg har kun 3 felter.. det ændrer du bare til 10 */
    {
        antal = parseFloat( eval("f.Antalkg" + i + ".value") );
        pr = parseFloat( eval("f.Prkg" + i + ".value") );
        total += antal * pr;
    }
    alert("Total er: " + total);
}

</script>

<form name="UserForm">
Antal: <input type="text" name="Antalkg1" value="1">
Pr. kg: <input type="text" name="Prkg1" value="2">
<br>
Antal: <input type="text" name="Antalkg2" value="3">
Pr. kg: <input type="text" name="Prkg2" value="4">
<br>
Antal: <input type="text" name="Antalkg3" value="5">
Pr. kg: <input type="text" name="Prkg3" value="6">
<br><br>
<input type="button" onclick="udregn()" value="udregn">
</form>

Du må ikke ændre i koden.. :-)


Hvad skriver den så..? :-)
Avatar billede ingeman Seniormester
19. februar 2007 - 20:36 #31
kommer med resultat 44 så det er jo rigtigt ! - jeg tror jeg skal lede efter fejlen andet steds - vender tilbage.
Avatar billede thesurfer Nybegynder
19. februar 2007 - 20:38 #32
Jeg lagde mærke til, at du har kaldt en anden funktion for "udregn1()"..

Husker du også at kalde på "udregn1()" i stedet for "udregn()"?
Avatar billede ingeman Seniormester
19. februar 2007 - 20:48 #33
Det er tomme felter der er skyld i fejlen - koden skal tage højde for at det inderholder et tal !
Avatar billede ingeman Seniormester
19. februar 2007 - 20:49 #34
Alle felter indeholder ikke altid tal
Avatar billede thesurfer Nybegynder
19. februar 2007 - 21:02 #35
"Alle felter indeholder ikke altid tal"? Huh? :-)

Hvordan kan et felt der har med "Antal" og "Pr kg" ikke indeholde tal? :-)

Den forstod jeg ikke helt.. men ok, jeg kan da godt lave et check for ingenting..

Komplet eksempel:

<script type="text/JavaScript" language="JavaScript">

function udregn()
{
    f = document.UserForm;
    total = 0;
    for(i=1; i < 3 + 1; i++) /* jeg har kun 3 felter.. det ændrer du bare til 10 */
    {
        antal = eval("f.Antalkg" + i + ".value");
        antal = antal.replace(",", ".");
        pr = eval("f.Prkg" + i + ".value");
        pr = pr.replace(",", ".");
        if (antal != "" && pr != "") total += parseFloat(antal) * parseFloat(pr);
    }
    alert("Total er: " + total);
}

</script>

<form name="UserForm">
Antal: <input type="text" name="Antalkg1" value="1">
Pr. kg: <input type="text" name="Prkg1" value="2">
<br>
Antal: <input type="text" name="Antalkg2" value="3">
Pr. kg: <input type="text" name="Prkg2" value="4">
<br>
Antal: <input type="text" name="Antalkg3" value="5">
Pr. kg: <input type="text" name="Prkg3" value="6">
<br><br>
<input type="button" onclick="udregn()" value="udregn">
</form>


Nu skal du ikke komme og sige, at felterne kan indeholde tekst.... :-)
Avatar billede ingeman Seniormester
19. februar 2007 - 21:08 #36
Så var den der - så mangler jeg lige den her

f = document.UserForm
   
    f.Antalkg1.value = f.Antalkg1.value.replace(/,/,".")
    f.Prkg1.value = f.Prkg1.value.replace(/,/,".")

    var Antalkg = f.Antalkg1.value
    var Prkg = f.Prkg1.value
    var Total = Antalkg * Prkg

    var a = new ToFmt(Total);
    f.Totbl1.value = a.fmtF(13,2);
   
skal laves så den løbes igennem 10 gange fra 1 til 10
Avatar billede thesurfer Nybegynder
19. februar 2007 - 21:11 #37
Det vil sige, at du også har 1x TotblNUMMER for hver eneste Antal/Prkg?

Dvs, det ser sådan ud:

[Antal] [Pr kg]  [Total]

?
Avatar billede ingeman Seniormester
19. februar 2007 - 21:16 #38
yes
Avatar billede thesurfer Nybegynder
19. februar 2007 - 21:19 #39
Og alle disse TotblNUMMER skal lægges sammen, til en IALT-TOTAL-felt? :-)
Avatar billede ingeman Seniormester
19. februar 2007 - 21:20 #40
jep
Avatar billede thesurfer Nybegynder
19. februar 2007 - 21:23 #41
Du kunne have sparet mindst 1 - 1,5 (måske 1,75) time, ved at smide HTML-filen online... :-)

Her er mit bud (komplet eksempel):

<script type="text/JavaScript" language="JavaScript">

function udregn()
{
    f = document.UserForm;
    total = 0;
    altialt = 0;
    for(i=1; i < 3 + 1; i++) /* jeg har kun 3 felter.. det ændrer du bare til 10 */
    {
        antal = eval("f.Antalkg" + i + ".value");
        antal = antal.replace(",", ".");
        pr = eval("f.Prkg" + i + ".value");
        pr = pr.replace(",", ".");

        if (antal != "" && pr != "")
        {
            total = parseFloat(antal) * parseFloat(pr);
            eval("f.Totbl" + i + ".value=" + total);
            altialt += total;
        }
    }

    f.altialt.value = altialt;   
}

</script>

<form name="UserForm">
Antal: <input type="text" name="Antalkg1" value="1">
Pr. kg: <input type="text" name="Prkg1" value="2">
Total: <input type="text" name="Totbl1" value="">
<br>
Antal: <input type="text" name="Antalkg2" value="3">
Pr. kg: <input type="text" name="Prkg2" value="4">
Total: <input type="text" name="Totbl2" value="">
<br>
Antal: <input type="text" name="Antalkg3" value="5">
Pr. kg: <input type="text" name="Prkg3" value="6">
Total: <input type="text" name="Totbl3" value="">
<br><br>
Alt i alt: <input type="text" name="altialt" value="">
<br><br>
<input type="button" onclick="udregn()" value="udregn">
</form>
Avatar billede ingeman Seniormester
19. februar 2007 - 21:39 #42
Ja det kan jeg godt se men filen består af 950 lin - så jeg tog kun det det omhandlede - men tak for hjælpen - åbn svar.
Avatar billede thesurfer Nybegynder
19. februar 2007 - 21:48 #43
Hvis filen lå online, kunne vi selv springe de ting over, som vi ikke behøvede.. det havde helt klart været nemmere..

Men ok, vi fik køst problemet.. :-)

Svar åbnet :-)
Avatar billede thesurfer Nybegynder
19. februar 2007 - 21:48 #44
PS: Vi ville ikke have kunnet se din ASP kode, kun HTML koderen (resultatet af ASP koden).. og det er den vi skal bruge..
Avatar billede ingeman Seniormester
19. februar 2007 - 21:50 #45
Javel - hvordan går man det - lægge filen online ?
Avatar billede thesurfer Nybegynder
19. februar 2007 - 22:05 #46
Enten finder du et sted, der tillader gratis oprettelse af hjemmesider, eller også køber du et domæne med webhotel.. alternativt kan du købe et domæne og få det til at pege på din egen server, men det kan ikke anbefales..

Så:
1) Find et sted hvor man kan oprette en gratis hjemmeside
2) Køb et domæne med webhotel
Avatar billede thesurfer Nybegynder
19. februar 2007 - 22:08 #47
En vigtig detalje:

Da der er ASP kode på dine sider, skal webhotellet understøtte ASP!
Eller vises ASP koden som almindelig tekst, og så bliver det ikke afviklet!

Eksempel 1 - Webhotel understøtter ASP:
dim navn
navn = "hugo"
response.write "Hej " & navn

Vises i browseren:
Hej hugo

Eksempel 2 - Webhotel understøtter IKKE ASP:
dim navn
navn = "hugo"
response.write "Hej " & navn

Vises i browseren:
dim navn
navn = "hugo"
response.write "Hej " & navn

Ja, hele ASP koden vises i browseren, i eksempel 2.. det afvikles ikke..
Avatar billede ingeman Seniormester
20. februar 2007 - 19:05 #48
OK - en lille detalje

function udregn()
{
    f = document.UserForm;
    total = 0;
    altialt = 0;
    for(i=1; i < 3 + 1; i++) /* jeg har kun 3 felter.. det ændrer du bare til 10 */
    {
        antal = eval("f.Antalkg" + i + ".value");
        antal = antal.replace(",", ".");
        pr = eval("f.Prkg" + i + ".value");
        pr = pr.replace(",", ".");

        if (antal != "" && pr != "")
        {
            total = parseFloat(antal) * parseFloat(pr);
            eval("f.Totbl" + i + ".value=" + total);
            altialt += total;
        }
    }

    f.altialt.value = altialt;   
}

hvordan skal det se ud hvis eval("f.Totbl" + i + ".value=" + total);
altid skriver med to dec alså feks 12.50  hvis 12 så skriver 12.00 ?
Avatar billede thesurfer Nybegynder
22. februar 2007 - 12:10 #49
Jeg havde glemt hvilket spørgsmål, jeg skulle vende tilbage til.. så jeg har bare gået de sidste dem igennem, og fundet dette.. :-)

Beklager forsinkelsen..

Her er et eksempel:

function udregn()
{
    f = document.UserForm;
    total = 0;
    altialt = 0;
    for(i=1; i < 3 + 1; i++) /* jeg har kun 3 felter.. det ændrer du bare til 10 */
    {
        antal = eval("f.Antalkg" + i + ".value");
        antal = antal.replace(",", ".");
        pr = eval("f.Prkg" + i + ".value");
        pr = pr.replace(",", ".");

        if (antal != "" && pr != "")
        {
            total = parseFloat(antal) * parseFloat(pr);
            tmp = "" + total;
            if (tmp.indexOf(".") == -1)
            {
                tmp += ".00";
            } else {
                tmp += "00";
            }
            tmp = tmp.substring(0, tmp.indexOf(".") + 3)

            eval("f.Totbl" + i + ".value='" + tmp + "'");
            altialt += total;
        }
    }

    f.altialt.value = altialt;   
}

Koden tiloføjer "00" til eksistererende kommatal, og ".00" til ikke-kommatal.
Så tager den fra første tegn i værdien, og til positionen af "." + 3..

Eksempel:

original tekst: 4
ny tekst: 4.00

original tekst: 2.5
ny tekst: 2.50

original tekst: 5.78
ny tekst: 5.78
Avatar billede thesurfer Nybegynder
22. februar 2007 - 13:01 #50
Jeg har rettet lidt i koden, og tilføjet en funktion der tilføjer decimal osv..:

function dec(v)
{
tmp = "" + v;
if (tmp.indexOf(".") == -1) tmp += ".";
tmp += "00";
tmp = tmp.substring(0, tmp.indexOf(".") + 3);
return tmp;
}

function udregn()
{
    f = document.UserForm;
    total = 0;
    altialt = 0;
    for(i=1; i < 3 + 1; i++) /* jeg har kun 3 felter.. det ændrer du bare til 10 */
    {
        antal = eval("f.Antalkg" + i + ".value");
        antal = antal.replace(",", ".");
        pr = eval("f.Prkg" + i + ".value");
        pr = pr.replace(",", ".");

        if (antal != "" && pr != "")
        {
            total = parseFloat(antal) * parseFloat(pr);
            tmp = dec(total);

            eval("f.Totbl" + i + ".value='" + tmp + "'");
            altialt += total;
        }
    }

    f.altialt.value = dec(altialt);   
}
Avatar billede thesurfer Nybegynder
22. februar 2007 - 13:04 #51
Du skulle også gerne kunne bruge ".toFixed(2)": http://www.mredkj.com/javascript/nfbasic2.html
Avatar billede thesurfer Nybegynder
22. februar 2007 - 13:06 #52
Der er vist problemer med kommatal.. se "Floating-point errors" på http://www.mredkj.com/javascript/nfbasic2.html

Du kan bare bruge koden fra 22/02-2007 13:01:59..
Avatar billede ingeman Seniormester
22. februar 2007 - 17:35 #53
OK - tak for 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

IT-JOB

Politiets Efterretningstjeneste

AI/ML udvikler i PET

Lægemiddelstyrelsen

Løsningsarkitekt

KMD A/S

E2E Tester

Politiets Efterretningstjeneste

CNE-specialist til PET`s indhentningsafdeling