Avatar billede lousen Nybegynder
28. juni 2004 - 20:23 Der er 23 kommentarer og
1 løsning

Checkbox sæt minimumstal i totalfelt

Jeg skal bruge et script hvor talet 200 gives som total i et tekstfelt ved klik af flueben i checkbox, de andre tal fra mine tekstfelter bliver givet m. koden <onChange="CalculateTotal(this.form)> og virker, blot skal talet 200 gives som en min. fragt ved klik i leveres. Kan nogen mon hjælpe mig med denne, så bliver jeg glad og vil gerne give igen, hvis jeg kan :-)

Stor Hilsen - Lousen
Avatar billede roenving Novice
28. juni 2004 - 20:29 #1
Sidst i CalculateTotal et eller andet i denne stil:

total += (frm.checkboxNavn.checked)?200:0;

(hvis funktionen f.eks. ser sådan ud: function CalculateTotal(frm){  !-)

-- og i checkboxen:

<input type="checkbox" name="checkboxNavn" onclick="CalculateTotal(this.form);">

-- skal det være mere præcist må du vise noget mere af din kode !o]
Avatar billede lousen Nybegynder
28. juni 2004 - 20:47 #2
Hej min ven,
Koden på checkboxen ser således ud:
<input type="checkbox" name="Fragt" onclick="CalculateTotal(this.form) "value="leveres">
og koden i Totalfeltet ser således ud efter din er indsat, men virker desværre ikke endnu. Tror du vi skal have noget ind i Script Language delen ?

<input type=TEXT name=TOTAL ekskl. moms size=10 onFocus="this.form.elements[0].focus()" total += (frm.checkboxNavn.checked)?200:0>

Skal du se Language delen siger du lige til, hej for nu og jeg glæder mig til at høre fra dig - Stor hilsen Lousen
Avatar billede roenving Novice
28. juni 2004 - 20:50 #3
Ja, den første linje skal indsættes i scriptet !-)

-- og det er sikkert en meget god idé, at jeg ser scriptet, du kunne måske linke til det, hvis det er omfattende ?-)
Avatar billede lousen Nybegynder
28. juni 2004 - 21:01 #4
http://www.allprint.dk/scripts/bestilling2.htm
Jeg har lagt den ud her, håber virkelig at du kan hjælpe mig, og vil blive dig dybt taknemmelig.

Hej for nu, og Større hilsen Lousen
Avatar billede roenving Novice
28. juni 2004 - 21:42 #5
En lille fejl i denne:

<input type="checkbox" name="Fragt" onclick="CalculateTotal(this.form)" value="leveres">


Denne skulle ikke ændres:
<input type=TEXT name=TOTAL ekskl. moms size=10 onFocus="this.form.elements[0].focus()">

-- men det er ulovligt at angive diverse ting inde i et tag, og et name må under ingen omstændigheder indeholde et mellemrum, så du må nok i gang med en større omskrivning af dine felt-navne !-)

-- og lav din linje, som indeholder leveringsfeltet (kørslen !-) om, så vi kan behandle det selvstændigt:

<div align="left"><font face="Arial, Helvetica, sans-serif" size="2">
          Kilometers k&oslash;rsel</font> <font face="Arial, Helvetica, sans-serif" size="2">
          ca.
          <input type="text" name="koersel_10" onChange="CalculateTotal(this.form) "size="1">
          </font></div>

-- og scriptet skal se sådan ud:

<script language="JavaScript" type="text/javascript">
<!--

/* This script is Copyright (c) Paul McFedries and
Logophilia Limited (http://www.mcfedries.com/).
Permission is granted to use this script as long as
this Copyright notice remains in place.*/

function CalculateTotal(frm) {
    var order_total = 0;

    var koerselsfelt,kmpris;

    // Run through all the form fields
    for (var i=0; i < frm.elements.length; ++i) {

        // Get the current field
        form_field = frm.elements[i]

        // Get the field's name
        form_name = form_field.name

        //Hvis kørsels-felt, husk det !-)
        if(form_name.indexOf("koersel")==0)koerselsfelt = form_field;

        // Is it a "product" field?
        if (form_name.substring(0,4) == "PROD") {

            // If so, extract the price from the name
            item_price = parseFloat(form_name.substring(form_name.lastIndexOf("_") + 1))

            // Get the quantity
            item_quantity = parseInt(form_field.value)

            // Update the order total
            if (item_quantity >= 0) {
                order_total += item_quantity * item_price
            }
        }
    }

    //Hvis kørsel er under 200 kr. skal minimum sættes til 200, hvis der skal leveres
    if(frm.Fragt.checked){
      kmpris = +koerselsfelt.name.replace(/.*_([\d\.]+)$/, "$1");
      alert(kmpris);
      kmpris *= +koerselsfelt.value;
      order_total += (kmpris>200)?kmpris:200;
    }

    // Display the total rounded to two decimal places
    frm.TOTAL.value = round_decimals(order_total, 2)
}

function round_decimals(original_number, decimals) {
    var result1 = original_number * Math.pow(10, decimals)
    var result2 = Math.round(result1)
    var result3 = result2 / Math.pow(10, decimals)
    return pad_with_zeros(result3, decimals)
}

function pad_with_zeros(rounded_value, decimal_places) {

    // Convert the number to a string
    var value_string = rounded_value.toString()
   
    // Locate the decimal point
    var decimal_location = value_string.indexOf(".")

    // Is there a decimal point?
    if (decimal_location == -1) {
       
        // If no, then all decimal places will be padded with 0s
        decimal_part_length = 0
       
        // If decimal_places is greater than zero, tack on a decimal point
        value_string += decimal_places > 0 ? "." : ""
    }
    else {

        // If yes, then only the extra decimal places will be padded with 0s
        decimal_part_length = value_string.length - decimal_location - 1
    }
   
    // Calculate the number of decimal places that need to be padded with 0s
    var pad_total = decimal_places - decimal_part_length
   
    if (pad_total > 0) {
       
        // Pad the string with 0s
        for (var counter = 1; counter <= pad_total; counter++)
            value_string += "0"
        }
    return value_string
}

//-->
</script>

-- jeg har ikke stress-testet det, men der skulle være nogenlunde luget ...

-- til gengæld må jeg så sige, at det måske lige har nogle år på bagen ...
Avatar billede roenving Novice
28. juni 2004 - 21:44 #6
-- og jeg glemte at fjerne den linje jeg brugte til at følge med, så den linje i scriptet, som starter med alert skal fjernes !-)
Avatar billede lousen Nybegynder
28. juni 2004 - 22:02 #7
Dybt tak indtil videre, jeg må nørkle videre med det imorgen - Hej og håber du er på hvis ikke jeg kan selv :-)

Stor hilsen Lousen
Avatar billede roenving Novice
28. juni 2004 - 22:10 #8
U'r welcome !-)
Avatar billede lousen Nybegynder
29. juni 2004 - 19:07 #9
Hej min ven - Roenving
Jeg har lagt den ud igen, med de seneste koder, og får nogle fejl som jeg ikke kan afhjælpe selv, faktisk virker ingen felter nu, er du sød at kigge på dem og hjælpe mig :-)
http://www.allprint.dk/scripts/bestilling2.htm
På forhånd mange tak,
Stor hilsen
Lousen
Avatar billede roenving Novice
29. juni 2004 - 19:25 #10
Du må ikke bruge html-entities i navne, så du skal ændre denne linje:

<input type="text" name="k&oslash;rsel_10" onChange="CalculateTotal(this.form) "size="1">

Til:

<input type="text" name="koersel_10" onChange="CalculateTotal(this.form) "size="1">

-- da vi skal søge på navnet for at styre det helt på plads !-)
Avatar billede lousen Nybegynder
29. juni 2004 - 19:33 #11
Hej, det er hermed gjort :-)
Den skriver at der skulle være fejl i linie 66, tegn 5 vedr. TOTAL ?
Jeg forstår det ikke, kan du hjælpe ?
På forhånd mange tak,
Stor hilsen
Lousen
Avatar billede roenving Novice
29. juni 2004 - 19:49 #12
Det er fordi du ikke har fået konsekvens-rettet din navne-ændring på Total-feltet, prøv sådan:

    frm.TOTALeksklMoms.value = round_decimals(order_total, 2)


          <input type=TEXT name=TOTALeksklMoms size=10 onFocus="this.form.elements[0].focus()">

-- og jeg har ikke kigget koden igennem, om der evt. skulle være andre fejl, den er jo en anelse omfattende !-)
Avatar billede lousen Nybegynder
29. juni 2004 - 20:06 #13
Hej igen, Jeg har indsat koden, og det ser ikke ud til at være nok.
Jeg synes det ser ud som om koden - når den virker - går ind og laver en minimum ved angivelse af KM, hvilket ikke er helt sådan det er tiltænkt til at skulle være. Det flueben i "checkboxen leveres" skal uanset KM give 200 i totalfeltet.
Håber det er forstået sådan :-) Jeg glæder mig til at høre fra dig.
Stor Stor hilsen Lousen
Avatar billede roenving Novice
29. juni 2004 - 20:08 #14
Og jeg der brugte en masse kræfter på at lave det, så transporten kunne blive dyrere, da du jo (ifølge den logik formen og scriptet er bygget efter !-) havde sat en pris på 10 kr. pr. kilometer ...

-- skal prisen bare altid være 200 kr. uanset afstand ?-)
Avatar billede lousen Nybegynder
29. juni 2004 - 20:19 #15
Ja det må du altså meget undskylde - så ;-)
Hvis jeg lige citerer mig selv fra første spørgsmål "blot skal talet 200 gives som en min. fragt ved klik i leveres." Herefter skives ca. km i et felt for sig.
Eks. 10 KM  giver således kr. 10 pr. km = 100 og så de 200 for klikfeltet lev. ialt kr. 300,- og 5 km således 250,- og 1 Km således 210 fordi klikfeltet generer de 200 og ca. Km tæller 10 kr. pr. km.
SORRY endnu engang - Håber du kan fikse det for mig :-)  Pleaaase !
Stor stor hilsen
Lousen
Avatar billede roenving Novice
29. juni 2004 - 20:25 #16
Jepz, øjeblik ...

Men jeg havde forstået det, så prisen skulle være efter kilometer, blot skulle der være en minimums fragtpris og ikke et startgebyr, som jo er det, du nu omtaler ...

Der skal kun ændres i een linje, finder den lige !-)
Avatar billede roenving Novice
29. juni 2004 - 20:27 #17
Erstat ændrede linjer:

    //Startgebyr 200,- hvis der skal leveres
    if(frm.Fragt.checked){
      kmpris = +koerselsfelt.name.replace(/.*_([\d\.]+)$/, "$1");
      kmpris *= +koerselsfelt.value;
      order_total += kmpris+200;
    }
Avatar billede lousen Nybegynder
29. juni 2004 - 20:35 #18
Hej Ven,
Skal jeg blot fjerne denne, omskrive eller overskrive :-)
Kan godt være jeg virker sinke nu - HI hi. 
Stor hilsen
Lousen
Avatar billede lousen Nybegynder
29. juni 2004 - 20:39 #19
Har lagt den ud, som jeg tror du mener med erstat ændrede linjer.
Virker ej - æv.
Vi høres,
Lousen
Avatar billede roenving Novice
29. juni 2004 - 21:01 #20
Du fik ikke feltet ændret også:

          <input type=TEXT name=TOTALeksklMoms size=10 onFocus="this.form.elements[0].focus()">
Avatar billede lousen Nybegynder
30. juni 2004 - 18:54 #21
NU NU NU - YEAh haaa :-) Meget glad nu!
Du får topkarakter herfra - går ind og giver nu.
STOR HILSEN - DIN VEN LOUSEN
Avatar billede roenving Novice
30. juni 2004 - 18:57 #22
Velbekomme '-)
Avatar billede lousen Nybegynder
30. juni 2004 - 18:59 #23
Top!
Avatar billede roenving Novice
30. juni 2004 - 19:01 #24
-- og tak for point ;~}
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