Oprettet ons. d. 15. august 2012 kl. 15:20:11

plippert
plippert (13.865 point. Point ude: 0)

1.000 seperator

Jeg har en lille fin html-app til ipad, hvor jeg mangler at få 1.000 seperator til at virke så der står 1.000 i stedet 1000. Jeg har forsøgt mig med et væld af muligheder som jeg er kommet frem til ved at google, men ingen af dem har jeg kunne finde ud af at implementere.

Jeg ved ikke helt hvor meget kode der behøves for at det giver mening, men herunder er funktionen der viser de respektive tal i mine div-kasser.

amount og totalprice ville jeg rigtig gerne have en 1.000 seperator på...




           
            // define the finish callback, this runs after the calculation has been complete
            function ($this){
                // sum the total of the $("[id^=total_item]") selector
                var sum = $this.sum();               
                var amount = $("input[name^=qty_item_1]").val(); // OK
                var showppunit = $("input[name=ppunit]").val();
                $("#amount").val(amount);
                $("#showppunit").val(showppunit);
                $("#totalprice").val(sum);           
                $("#grandTotal").text(
                    // round the results to 2 digits
                    "Kr. " + sum.toFixed(0)
                );
            }

Skrevet ons. d. 15. august 2012 kl. 16:22:39| #1

olebole
olebole (216.723 point)
<ole>

var num = 234569000894;
alert(num.toLocaleString());

/mvh
</bole>

Skrevet man. d. 20. august 2012 kl. 04:00:46| #2

mbm2007
mbm2007 (10.077 point)
www.magnusbm.dk
Hejsa #plippert,

Jeg har lige siddet og fundet på en funktion som kan lave punktum seperatorer på tal, hvor man selv kan bestemme hvor den skal dele tallet:

function numSep(numStr,digits)
    {   
        (typeof(numStr!="string")?numStr=numStr+"":0);
        var i = numStr.length;
        while((i-digits)>=0?i-=digits:0)               
            numStr = [numStr.slice(0, i), ".", numStr.slice(i)].join('');
        return numStr;
    }


Hvis du gerne vil have den til at lave tusind seperatorer, bruger du den sådan her:
numSep("3250",3) -> 3.250

du kan også dele ved 2;
numSep("3250",2) -> 32.50


Hvis du sætter min funktion ind før din egen kode kan din implementation komme til at se nogenlunde således ud:

function numSep(numStr,digits)
    {   
        (typeof(numStr!="string")?numStr=numStr+"":0);
        var i = numStr.length;
        while((i-digits)>=0?i-=digits:0)               
            numStr = [numStr.slice(0, i), ".", numStr.slice(i)].join('');
        return numStr;
    }

// define the finish callback, this runs after the calculation has been complete
            function ($this){
                // sum the total of the $("[id^=total_item]") selector
                var sum = numSep($this.sum(),3);               
                var amount = numSep($("input[name^=qty_item_1]").val(),3); // OK
                var showppunit = $("input[name=ppunit]").val();
                $("#amount").val(amount);
                $("#showppunit").val(showppunit);
                $("#totalprice").val(sum);           
                $("#grandTotal").text(
                    // round the results to 2 digits
                    "Kr. " + sum.toFixed(0)
                );
            }

Skrevet man. d. 20. august 2012 kl. 04:00:54| #3

mbm2007
mbm2007 (10.077 point)
www.magnusbm.dk
Hejsa #plippert,

Jeg har lige siddet og fundet på en funktion som kan lave punktum seperatorer på tal, hvor man selv kan bestemme hvor den skal dele tallet:

function numSep(numStr,digits)
    {   
        (typeof(numStr!="string")?numStr=numStr+"":0);
        var i = numStr.length;
        while((i-digits)>=0?i-=digits:0)               
            numStr = [numStr.slice(0, i), ".", numStr.slice(i)].join('');
        return numStr;
    }


Hvis du gerne vil have den til at lave tusind seperatorer, bruger du den sådan her:
numSep("3250",3) -> 3.250

du kan også dele ved 2;
numSep("3250",2) -> 32.50


Hvis du sætter min funktion ind før din egen kode kan din implementation komme til at se nogenlunde således ud:

function numSep(numStr,digits)
    {   
        (typeof(numStr!="string")?numStr=numStr+"":0);
        var i = numStr.length;
        while((i-digits)>=0?i-=digits:0)               
            numStr = [numStr.slice(0, i), ".", numStr.slice(i)].join('');
        return numStr;
    }

// define the finish callback, this runs after the calculation has been complete
            function ($this){
                // sum the total of the $("[id^=total_item]") selector
                var sum = numSep($this.sum(),3);               
                var amount = numSep($("input[name^=qty_item_1]").val(),3); // OK
                var showppunit = $("input[name=ppunit]").val();
                $("#amount").val(amount);
                $("#showppunit").val(showppunit);
                $("#totalprice").val(sum);           
                $("#grandTotal").text(
                    // round the results to 2 digits
                    "Kr. " + sum.toFixed(0)
                );
            }

Skrevet man. d. 20. august 2012 kl. 04:04:25| #4

mbm2007
mbm2007 (10.077 point)
www.magnusbm.dk
Der fail'ede ekspertens post system vidst lige igen og postede det 2 gange!!! Sikke noget spam!

Det skal lige siges at denne linje som står i funktionen:

(typeof(numStr!="string")?numStr=numStr+"":0);

Gør at du både kan bruge funktionen med tal:
numSep(3250,3) -> 3.250

og med en streng:
numSep("3250",3) -> 3.250

Skrevet man. d. 20. august 2012 kl. 13:54:02| #5

plippert
plippert (13.865 point)
Hejsa
Det var ellers fornemt! Jeg kan imidlertid ikke få det til at virke :(

Der kommer ikke noget punktum.



Har kun tilføjet et , efter din funktion




function numSep(numStr,digits)
    { 
        (typeof(numStr!="string")?numStr=numStr+"":0);
        var i = numStr.length;
        while((i-digits)>=0?i-=digits:0)             
            numStr = [numStr.slice(0, i), ".", numStr.slice(i)].join('');
        return numStr;
    },

// define the finish callback, this runs after the calculation has been complete
            function ($this){
                // sum the total of the $("[id^=total_item]") selector
                var sum = numSep($this.sum(),3);             
                var amount = numSep($("input[name^=qty_item_1]").val(),3); // OK
                var showppunit = $("input[name=ppunit]").val();
                $("#amount").val(amount);
                $("#showppunit").val(showppunit);
                $("#totalprice").val(sum);         
                $("#grandTotal").text(
                    // round the results to 2 digits
                    "Kr. " + sum.toFixed(0)
                );
            }

Skrevet man. d. 20. august 2012 kl. 14:27:17| #6

olebole
olebole (216.723 point)
<ole>

En lidt lettere/simplere løsning:

function str2num(s) {
    return 1*(""+s.replace(".", "").replace(",", "."));
}
function num2str(n) {
    return n.toLocaleString();
}
alert(str2num("25567,45"));
alert(num2str(25567.45));

Et tal, indtastet af brugeren, kører du igennem str2num, inden du bruger tallet til beregninger.

Når du skal skrive tallet ud i dokumentet, kører du det igennem num2str

/mvh
</bole>

Skrevet man. d. 20. august 2012 kl. 14:46:34| #7

plippert
plippert (13.865 point)
Hejsa olebole
Jeg ved godt, at det er simple kode, men jeg forstår mig ikke på, at sætte det ind de rigtige steder i min egen kode :(

Skrevet man. d. 20. august 2012 kl. 15:01:06| #8

olebole
olebole (216.723 point)
Hvis du ikke ved, hvad du laver, burde du nok sætte dig ind i virkemåden af de ting, du laver. En god idé ville være at vente med at bruge jQuery, til du har lært noget JavaScript.

jQuery gør ikke, at man ikke behøver at være så stærk i JS ... tværtimod. Når du bruger jQuery, kræver det bedre indsigt i JS  =)

Skrevet man. d. 20. august 2012 kl. 15:36:16| #9

plippert
plippert (13.865 point)
det er derfor jeg skriver her. Kunne jeg finde ud af det, ville jeg lave det selv.
Hvis ikke du har lyst til at hjælpe, så lader du bare være.

Skrevet man. d. 20. august 2012 kl. 16:12:51| #10

olebole
olebole (216.723 point)
Så har du helt misforstået meningen med Eksperten. Hvis man bare skal heve en færdig kode, opretter man et spørgsmål under kategorien 'Opgaver'.

Kategorien her er beregnet til 'Hjælp til selvhjælp'. Hvis du skal lære noget, må du forklare, hvad det er, du ikke kan finde ud af. Hvad er det ved den kode, du har skrevet, du ikke forstår, siden du ikke ved, hvor det skal sættes ind?

Skrevet man. d. 27. august 2012 kl. 17:35:07| #11

mbm2007
mbm2007 (10.077 point)
www.magnusbm.dk
Hejsa Plippert :)

Kan se du ikke har særligt godt styr på Javascript, og måske kodning i det hele taget ! :-)

Dejligt at så tør spørger om hjælp herinde, men jeg tror vidst du bliver nødt til at give os hele koden til fra hele den side hvor du skal bruge funktionaliteten? :)

Skrevet tor. d. 30. august 2012 kl. 09:10:13| #12

plippert
plippert (13.865 point)
Hejsa
beklager, at der gik så lang tid før jeg kunne vende tilbage. hermed min kode





<!DOCTYPE html>
<html>
    <head>
   
    <meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1" />
        <link rel="apple-touch-icon" sizes="72x72" href="home-screen-icon.png" />
        <title>
        E4D - Hvornår kan det betale sig
        </title>
 
       
       
        <link rel="stylesheet" href="https://ajax.aspnetcdn.com/ (...) />
      <style>
            /* App custom styles */
            input.contact {
                margin-left:-25px;
                height:30px;
            }
            #submit {
                color: #fff;
                font-size: 0;
                width: 135px;
                height: 60px;
                border: none;
                margin: 0;
                padding: 0;
                }

        #amount {
                    margin-left: 285px;
                    margin-top:-29px;
                    width:60px;
           
            }
        #totalprice {
                    margin-left: 330px;
                    margin-top:-29px;
                    width:60px;
                }
        #showppunit {
                    margin-left: 100px;
                    margin-top:-29px;
                    width:60px;
                }
       
        </style>
      <script src="https://ajax.googleapis.com/ (...)       
        <script src="https://ajax.aspnetcdn.com/ (...)       
        <script src="my.js">
        </script>

    <!--// load jQuery Plug-ins //-->
    <script type="text/javascript" src="jquery.calculation.js"></script>

    <script type="text/javascript">
    $(document).ready(
        function (){
            // update the plug-in version
            $("#idPluginVersion").text($.Calculation.version);
            // bind the recalc function to the quantity fields
//            $("input[name^=qty_item_]").slider("refresh");
            $("input[name=ppunit]").bind("change", recalc);//PLI tilføjer
            $("input[name^=qty_item_]").bind("change", recalc);
            // run the calculation function now
            recalc();
           
            //$("#qty_item_1").change(function(){
        //    var slider_value = $(this).val()
    //        console.log(slider_value)
  //            })

           
           

        }
    );
   
    function recalc(){
        $("[id^=total_item]").calc(
            // the equation to use for the calculation
            //"qty * price",
            "((qty * (ppunit - 300))-11840) - ((ppunit - 1900) * qty)", //nu med  salgspris indregnet i ikke-e4d-scenarie.
            //"((qty * (ppunit - 300))-11840)-(qty * 3100)",//PLI retter
            // define the variables used in the equation, these can be a jQuery object
            {
                ppunit: $("input[name=ppunit]"),//PLI tilføjer
                qty: $("input[name^=qty_item_1]"),
                price: $("[id^=price_item_]")
            },
            // define the formatting callback, the results of the calculation are passed to this function
           
            function (s){
                // return the number as a dollar amount
                return "Kr. " + s.toFixed(0);
                //return v.replace(/[^0-9.\-]/g, "");
            },
           


           
            // define the finish callback, this runs after the calculation has been complete
            function ($this){
//                // sum the total of the $("[id^=total_item]") selector
                var sum = $this.sum();               
                var amount = $("input[name^=qty_item_1]").val(); // OK
                var showppunit = $("input[name=ppunit]").val();
            $("#amount").val(amount);
            $("#showppunit").val(showppunit);
                $("#totalprice").val(sum);           
            $("#grandTotal").text(
                    // round the results to 2 digits
            );
            }
           
           
           
        );
    }
   
   
   
//


    </script>
    </head>
    <body>

   
        <!-- Home -->
        <div data-role="page" id="page1">
            <div data-theme="a" data-role="header">
                <h2>
E4D-Beregneren - hvornår kan det betale sig?
             
                </h2>
            </div>
                   
            <div data-role="content" style="padding: 15px">
                <div data-role="fieldcontain">
                <h1 style="text-align:center;">Hvor mange fuldkeramiske kroner laver<br/>klinikken om måneden?</h1>
                    <fieldset data-role="controlgroup">
                        <label for="qty_item_1">
                            </label>
                        <input name="qty_item_1" id="qty_item_1" value="7.4" min="0" max="100" data-highlight="true" type="range" />
                    </fieldset>
                  <!--<h1 style="text-align:center;">Hvad betaler patienterne per styk?</h1>
                    <fieldset data-role="controlgroup">
                        <label for="ppunit">
                            </label>
                        <input name="ppunit" id="ppunit" value="5000" min="3400" max="10000" step="100" data-highlight="true" type="range" />
                       
                    </fieldset>-->
                </div><br/>
              <h1 style="text-align:center;">Merindtjening om måneden med E4D:
                <div data-role="fieldcontain" id="total_item_1" style="margin-top:10px; text-align:center; vertical-align:middle; font-size:70px; margin-left:auto; margin-right: auto; display:block; width:500px; height:75px; border:0px solid #dedede;"></div></h1>
                <div style="display:block; width:400px;margin-left:auto; margin-right:auto; margin-top:-20px;"><a href="#page2" data-direction="reverse" data-role="button" data-theme="b" style="margin-left:auto; margin-right:auto;height:60px;width:400px; font-size:24px;">Vil du høre mere?</a>
               
               
                         
                              </div><br/><br/><br/><br/><br/>
            <p><a href="#popup" data-direction="reverse" data-role="button" data-inline="true" style="float:right;">Se forudsætninger</a></p>
   
               
            </div>
        </div><!-- /page1 -->
       
<!-- Start of second page: #page2 -->
<div data-role="page" id="page2">

    <div data-role="header">
        <h1>Ja, tak. Jeg vil gerne kontaktes vedrørende E4D</h1>
    </div><!-- /header -->

    <div data-role="content">   
        <h1 style="text-align:center;">Skal vi ikke ringe til dig?</h1>
       
        <!-- Formular start  -->
        <div data-role="content" style="padding: 10px; margin:0 auto; width:700px; border:0px solid black; text-align:center;">
       
                <form action="send.php" method="POST" data-ajax="false" >
                <div style="text-align:left; width:440px; margin:0 auto; border:0px solid black;"><p>Antal fuldkeramiske kroner hver måned <input class="locked" id="amount" name="amount"  readonly/> <br/>
              <!--  Pris per styk: <input id="showppunit" name="showppunit" class="locked" readonly/><br/> -->
                Potentiel merindtjening ved investering i E4D: <input class="locked" id="totalprice" name="totalprice"  readonly /> </p>

               
                </div>
               
<p><strong>Jo, tak. Det lyder interessant!</strong><br/> Kontakt mig snarest vedrørende E4D.</p>
                <div data-role="fieldcontain">
                    <fieldset data-role="controlgroup">
                     
                        <input class="contact" id="textinput1" placeholder="Navn"  name="firstname" type="text" />
                    </fieldset>
                </div>
                <div data-role="fieldcontain">
                    <fieldset data-role="controlgroup">
                     
                        <input class="contact" id="textinput4" placeholder="Klinik"  name="klinik" type="text" />
                    </fieldset>
                </div>
                <div data-role="fieldcontain">
                    <fieldset data-role="controlgroup">
                   
                        <input class="contact" id="textinput2" placeholder="E-mail"  name="e-mail" type="email" />
                    </fieldset>
                </div>
                <div data-role="fieldcontain">
                    <fieldset data-role="controlgroup">
                     
                        <input class="contact" id="textinput3" placeholder="Telefon"  name="telefon" type="number" />
                    </fieldset>
                </div>
              <div style="border:0px solid black; width:300px; margin:0 auto;">
              <input data-inline="true" value="Ja, tak. Jeg vil gerne kontaktes" data-mini="false" type="submit" class="contact_submit" /> </div>
            </form> </div>
         
</div>
            <!-- Formular slut -->
<br/><br/><br/><br/><br/>
        <p><a href="http://superfly.dk/ (...) data-role="button" data-inline="true" data-icon="back" style="float:right;">Ny beregning</a></p>
       
    </div><!-- /content -->
   
   
</div><!-- /page two -->


<!-- Start of third page: #popup -->
<div data-role="page" id="popup">

    <div data-role="header">
       
        <h1>Forudsætninger</h1>
    </div><!-- /header -->
<div style="border:0px solid black; width:500px; margin:0 auto;">
    <div data-role="content">   
        <h2 style="text-align:center;">Forudsætninger</h2>
        <p>Vi har sat  nedenstående forudsætninger for den beregning der foretaget.<br>
Der tages  udgangspunkt i en fuldkeramisk krone. </p>
        <ul>
          <li>Månedlig leasingudgift til udstyret: kr.  12.500 inkl. moms.</li>
        </ul>
        <p>&nbsp;</p>
        <ul>
          <li>Anslået udgift til laboratorium pr. krone:  kr. 1.600 inkl. moms.</li>
        </ul>
        <ul>
          <li>Anslået kostpris for en E4D krone inkl.  slitage på bor: kr. 300 inkl. moms</li>
        </ul>
        <p>&nbsp;</p>
        <ul>
          <li>Anslået kostpris for et provisorium ekskl.  medgået tid: kr. 300 inkl. moms</li>
        </ul>
        <ul>
          <li>Salgspris til patient pr. krone: Variabel</li>
        </ul>
        <p>&nbsp;</p>
        <ul>
          <li>Forventet antal kroner om måneden: Variabel.</li>
        </ul>       
    </div>

          <div style="display:block; width:400px;margin-left:auto; margin-right:auto;">
          <a href="#page1"  data-role="button" data-theme="b" style="margin-left:auto; margin-right:auto;height:60px;width:400px; font-size:24px;">Tilbage til beregning</a>
               
               
                         
                              </div>
    </div><!-- /content -->
   
   
</div><!-- /page popup -->




        <script>
        </script>
    </body>
</html>

Skrevet ons. d. 05. september 2012 kl. 13:41:10| #13

plippert
plippert (13.865 point)
har fået det til at virke - lukker

Skrevet ons. d. 05. september 2012 kl. 13:41:43| #14


Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   


Seneste spørgsmål

Første ID er tom ?

Oprettet den 11. maj 2013 kl. 11.54
ingeman giver 200 point for svar | Giv et svar »

alert box frem hvis der intet indhold er på siden

Oprettet den 8. maj 2013 kl. 19.43
tobrukDk giver 60 point for svar | Giv et svar »

Enter som TAB

Oprettet den 8. maj 2013 kl. 14.21
MolleBarb giver 30 point for svar | Giv et svar »








Tips & Tricks fra PC World

Teaser billede

Her er seks Google Labs-funktioner, som du skal slå til med det samme

Gmail Labs giver dig adgang til en masse smarte funktioner, som Googles ingeniører leger med i øjeblikket.


Anmeldelser fra PC World

Teaser billede

Test: Samsung Galaxy S4 er et hit - trods gøglertricks

Kan Samsung beholde førertrøjen i det store Android-race? Galaxy S4 er smækfyldt med innovative funktioner, men også med en del gøgl. Er det for meget? Få vores dom over Samsungs nye topmodel.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Tre smarte trick som gør Windows 8 bedre

Boot direkte til skrivebordet, få en strategisk godt placeret luk-knap og slip for at logge ind. Her er tre tips til Windows 8, som gør det nemmere at blive venner med styresystemet.


Nyheder fra Computerworld

Teaser billede

Galleri: Her er Googles nyeste værktøj og legetøj

Google har i denne uge afholdt udviklerkonferencen I/O i San Francisco. Se her hvad søgegiganten kunne præsentere af nyskabelser.


IT Kurser
Samarbejdspartnere

Udgiver · © 2013 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger