2015-12-16 1 views
0

Edit: ce n'est pas une question de maths ou d'opérateurs (je ne pense pas). Ceci est une question de formatage ou de masquage.Javascript - format décimal

Création d'un bon de commande. J'ai Javascript qui compile/totalise chaque colonne et affiche la quantité et le coût de la colonne dans deux autres champs. Je voudrais que le coût de la colonne soit formaté avec une valeur décimale et deux valeurs après celle-ci, mais ne semble pas pouvoir le comprendre. .toFixed (2) ne semble pas fonctionner (parce que c'est une chaîne?) Et je me demande si c'est parce que les champs de quantité et de coût sont en lecture seule?

Je suis bloqué.

//example of tallying one column 

    <input type="number" min="0" value="0" name="proA#x#" class="input-mini proA qty1 coffee total"> 

    $(document).on("change", ".qty1", function() { 
     var sum = 0; 
     $(".qty1").each(function(){ 
      sum += +$(this).val(); 
     }); 
     $(".total1").val(sum); 
     $(".cost1").val(sum*9.00); 
    }); 


    //item tally 

    <input type="number" id="D1" name="D1" class="input-mini uneditable-input total1" placeholder="0" readonly> 


    //item cost 

    <input type="number" id="" name="" class="input-mini uneditable-input cost1" placeholder="x 9.00" readonly > 

Merci d'avance!

+0

Je ne sais pas pourquoi cela a été marqué comme duplicata @Barmar. J'ai regardé cet autre fil - ne semble pas avoir quelque chose à voir avec ce que je demande. Aide-moi à comprendre. –

+0

Je n'ai pas remarqué le '+ 'avant' $ (this) .val(); ', je pensais que vous concateniez les valeurs au lieu de les ajouter. – Barmar

+2

Mais maintenant, je ne comprends pas pourquoi '$ (". Cost1 "). Val ((somme * 9) .toFixed (2))' ne fonctionne pas pour vous. – Barmar

Répondre

1

je le ferais de cette façon

var sum = 0.00; 
$(".qty1").each(function(){ 
    sum += parseFloat($(this).val()); 
}); 

$(".cost1").val(sum.toFixed(2));