The Calculation plug-in is designed to give easy-to-use jQuery functions for commonly used mathematical functions.
This plug-in will work on all types of HTML elementswhich means you can use it to calculate values in <td> elements or in <input> elements. You can even mix and match between element types.
Numbers are parsed from the element using parseNumber() methodwhich
uses a regular expression (/-?\d+(,\d{3})*(\.\d{1,})?/g) to
parse out the numeric value. You can change the regular expression that's
used to determine what's consider a number by changing the default regular
expression.
Download the plug-in:
jquery.calculation.js
jquery.calculation.min.js
$("input[@name^='price']").parseNumber();$("input[@name^='sum']").sum();$("input[@name^=';sum']").sum("keyup", "#totalSum");$("input[@name^='avg']").avg();$("input[@name^='avg']").avg("keyup", "#totalAvg");$("input[@name^='min']").min();$("input[@name^='max']").max();$("[@id^=total_item]").calc(
// the equation to use for the calculation
"qty * price",
// define the variables used in the equation, these can be a jQuery object
{
qty: $("input[@name^=qty_item_]"),
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 "$" + 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)
);
}
);
This example shows off the code used quantity * price = total example
shown above.
$.Calculation.setDefaults({
// regular expression used to detect numbers, if you want to force the field to contain
// numbers, you can add a ^ to the beginning or $ to the end of the regex to force the
// the regex to match the entire string: /^(-|-\$)?(\d+(,\d{3})*(\.\d{1,})?|\.\d{1,})$/g
reNumbers: /(-|-\$)?(\d+(,\d{3})*(\.\d{1,})?|\.\d{1,})?/g
// should the Field plug-in be used for getting values of :input elements?
, useFieldPlugin: true/false
// a callback function to run when an parsing error occurs
, onParseError: null
// a callback function to run once a parsing error has cleared
, onParseClear: null
});
Use the setDefaults() method to change the default parameters for the Calculation
Plug-in. If the Field Plug-in
is loaded, then it will be used by default.