2011-04-26 3 views
0

J'utilise le plugin jQuery Calculator (http://www.pengoworks.com/workshop/jquery/calculation/calculation.plugin.htm) et j'ai trébuché sur un petit problème lors du calcul du coût de cupcakes.jQuery Calculs ne fonctionnant pas

J'ai besoin de 19 £ pour 1-12 produits, 37 £ pour 13-24 produits, ou 1,45 £ chacun pour plus de 25 produits, mais je ne peux pas calculer comment changer la somme pour le montrer.

Quelqu'un peut-il aider s'il vous plaît?

Mon code à ce jour ...

var bIsFirebugReady = (!!window.console && !!window.console.log); 

$(document).ready(
    function(){ 
     // update the plug-in version 
     $("#idPluginVersion").text($.Calculation.version);); 


     // bind the recalc function to the quantity fields 
     $("input[name^=qty_item_]").bind("keyup", recalc); 
     // run the calculation function now 
     recalc(); 

     // automatically update the "#totalSum" field every time 
     // the values are changes via the keyup event 
     $("input[name^=sum]").sum("keyup", "#totalSum"); 

     // automatically update the "#totalAvg" field every time 
     // the values are changes via the keyup event 
     $("input[name^=avg]").avg({ 
      bind:"keyup" 
      , selector: "#totalAvg" 
      // if an invalid character is found, change the background color 
      , onParseError: function(){ 
       this.css("backgroundColor", "#cc0000") 
      } 
      // if the error has been cleared, reset the bgcolor 
      , onParseClear: function(){ 
       this.css("backgroundColor", ""); 
      } 
     }); 

     // automatically update the "#minNumber" field every time 
     // the values are changes via the keyup event 
     $("input[name^=min]").min("keyup", "#numberMin"); 

     // automatically update the "#minNumber" field every time 
     // the values are changes via the keyup event 
     $("input[name^=max]").max("keyup", { 
      selector: "#numberMax" 
      , oncalc: function (value, options){ 
       // you can use this to format the value 
       $(options.selector).val(value); 
      } 
     }); 

     // this calculates the sum for some text nodes 
     $("#idTotalTextSum").click(
      function(){ 
       // get the sum of the elements 
       var sum = $(".textSum").sum(); 

       // update the total 
       $("#totalTextSum").text("$" + sum.toString()); 
      } 
     ); 

     // this calculates the average for some text nodes 
     $("#idTotalTextAvg").click(
      function(){ 
       // get the average of the elements 
       var avg = $(".textAvg").avg(); 

       // update the total 
       $("#totalTextAvg").text(avg.toString()); 
      } 
     ); 
    } 
); 

function recalc(){ 


    $("[id^=total_item]").calc(
     // the equation to use for the calculation 

     if(qty > 24){ 

      "qty * price", 
     // define the variables used in the equation, these can be a jQuery object 
     { 
      qty: $("input[name^=qty_item_]"), 
      price: $("[id^=price_item_]"), 

     }, 

     }else{ 

      "qty = fee", 
     // define the variables used in the equation, these can be a jQuery object 
     { 
      qty: $("input[name^=qty_item_]"), 
      fee: ($("input[name^=qty_item_]").val() < 13) ? 19 : 37 , 

     }, 

     } 




     // define the formatting callback, the results of the calculation are passed to this function 
     function (s){ 
      // return the number as a dollar amount 
      return "£" + s.toFixed(2); 
     }, 
     // 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(); 

      $("#grandTotal").text(
       // round the results to 2 digits 
       "£" + sum.toFixed(2) 
      ); 
     } 
    ); 
} 

J'ai même essayé ...

function recalc(){ 

     // define the variables used in the equation, these can be a jQuery object 
     var qty = $("input[name^=qty_item_]"); 
     var price = $("[id^=price_item_]"); 
     var fee = ($("input[name^=qty_item_]").val() < 13) ? 19 : 37; 

    $("[id^=total_item]").calc(
     // the equation to use for the calculation 

     if(qty > 24){ 

      "qty * price", 


     }else{ 

      "qty = fee", 

     } 
+0

Bonjour, je voudrais aider. Pourriez-vous montrer le HTML aussi, ici ou en utilisant [jsFiddle] (http://www.jsfiddle.net)? Merci. – Paolo

+0

Vous ne savez pas comment utiliser jsFiddle et coller le code ci-dessus le rend malpropre ... y at-il un autre outil de code que je peux utiliser en ligne? –

+1

En fait ... je pense que je l'ai élaboré ... http://jsfiddle.net/Q3Nwd/ –

Répondre