|    
			
				05/08/2010, 15:55
			
			
			  | 
  |   |  |  |  Fecha de Ingreso: agosto-2010 
						Mensajes: 3
					 Antigüedad: 15 años, 2 meses Puntos: 0 |  | 
  |  Respuesta: Mostrar decimales  
  Solucioné el problema:
 // UTILITY FUNCTIONS
 
 function IsNumeric(n) {
 return !isNaN(n);
 }
 
 function CleanNumber(value) {
 
 // Assumes string input, removes all commas, dollar signs, and spaces
 newValue = value.replace(",","");
 newValue = newValue.replace("$","");
 newValue = newValue.replace(/ /g,'');
 return newValue;
 
 }
 
 function CommaFormatted(amount) {
 
 var delimiter = ",";
 var i = parseInt(amount);
 
 if(isNaN(i)) { return ''; }
 
 i = Math.abs(i);
 
 var minus = '';
 if (i < 0) { minus = '-'; }
 
 var n = new String(i);
 var a = [];
 
 while(n.length > 3)
 {
 var nn = n.substr(n.length-3);
 a.unshift(nn);
 n = n.substr(0,n.length-3);
 }
 
 if (n.length > 0) { a.unshift(n); }
 
 n = a.join(delimiter);
 
 amount = "$" + minus + n;
 
 return amount;
 
 }
 
 /esto esta mal, debería ser:
 function CurrencyFormatted(amount) {
 var i = parseFloat(amount);
 if(isNaN(i)) { i = 0.00; }
 var minus = '';
 if(i < 0) { minus = '-'; }
 i = Math.abs(i);
 i = parseInt((i + .005) * 100);
 i = i / 100;
 s = new String(i);
 if(s.indexOf('.') < 0) { s += '.00'; }
 if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
 amount = minus + s;
 return amount;
 }
 /
 
 // ORDER FORM UTILITY FUNCTIONS
 
 function applyName(klass, numPallets) {
 
 var toAdd = $("td." + klass).text();
 
 var actualClass = $("td." + klass).attr("rel");
 
 $("input." + actualClass).attr("value", numPallets + " pallets");
 
 }
 
 function removeName(klass) {
 
 var actualClass = $("td." + klass).attr("rel");
 
 $("input." + actualClass).attr("value", "");
 
 }
 
 function calcTotalPallets() {
 
 var totalPallets = 0;
 
 $(".num-pallets-input").each(function() {
 
 var thisValue = parseInt($(this).val());
 
 if ( (IsNumeric(thisValue)) && (thisValue != '') ) {
 totalPallets += parseInt(thisValue);
 };
 
 });
 
 $("#total-pallets-input").val(totalPallets);
 
 }
 
 function calcProdSubTotal() {
 
 var prodSubTotal = 0;
 
 $(".row-total-input").each(function() {
 
 var valString = $(this).val() || 0;
 
 prodSubTotal += parseInt(valString);/esto esta mal, debería ser: parseFloat/
 
 });
 
 $("#product-subtotal").val(CommaFormatted(prodSubTotal));
 
 }
 
 function calcShippingTotal() {
 
 var totalPallets = $("#total-pallets-input").val() || 0;
 var shippingRate = $("#shipping-rate").text() || 0;
 var shippingTotal = totalPallets * shippingRate;
 
 $("#shipping-subtotal").val(CommaFormatted(shippingTotal));
 
 }
 
 function calcOrderTotal() {
 
 var orderTotal = 0;
 
 var productSubtotal = $("#product-subtotal").val() || 0;
 var shippingSubtotal = $("#shipping-subtotal").val() || 0;
 var underTotal = $("#under-box").val() || 0;
 
 var orderTotal = parseInt(CleanNumber(productSubtotal)) + parseInt(CleanNumber(shippingSubtotal)); /esto esta mal, debería ser:parseFloat/
 
 $("#order-total").val(CommaFormatted(orderTotal));
 
 $("#fc-price").attr("value", orderTotal);
 
 }
 
 // DOM READY
 $(function() {
 
 var inc = 1;
 
 $(".product-title").each(function() {
 
 $(this).addClass("prod-" + inc).attr("rel", "prod-" + inc);
 
 var prodTitle = $(this).text();
 
 $("#foxycart-order-form").append("<input type='hidden' name='" + prodTitle + "' value='' class='prod-" + inc + "' />");
 
 inc++;
 
 });
 
 // Reset form on page load, optional
 $("#order-table input[type=text]:not('#product-subtotal')").val("");
 $("#product-subtotal").val("$0.00");
 $("#shipping-subtotal").val("$0");
 $("#fc-price").val("$0");
 $("#order-total").val("$0");
 $("#total-pallets-input").val("0");
 
 // "The Math" is performed pretty much whenever anything happens in the quanity inputs
 $('.num-pallets-input').bind("focus blur change keyup", function(){
 
 // Caching the selector for efficiency
 var $el = $(this);
 
 // Grab the new quantity the user entered
 var numPallets = CleanNumber($el.val());
 
 // Find the pricing
 var multiplier = $el
 .parent().parent()
 .find("td.price-per-pallet span")
 .text();
 
 // If the quantity is empty, reset everything back to empty
 if ( (numPallets == '') || (numPallets == 0) ) {
 
 $el
 .removeClass("warning")
 .parent().parent()
 .find("td.row-total input")
 .val("");
 
 var titleClass = $el.parent().parent().find("td.product-title").attr("rel");
 
 removeName(titleClass);
 
 // If the quantity is valid, calculate the row total
 } else if ( (IsNumeric(numPallets)) && (numPallets != '') ) {
 
 var rowTotal = numPallets * multiplier;
 
 $el
 .removeClass("warning")
 .parent().parent()
 .find("td.row-total input")
 .val(rowTotal);
 
 var titleClass = $el.parent().parent().find("td.product-title").attr("rel");
 
 applyName(titleClass, numPallets);
 
 // If the quantity is invalid, let the user know with UI change
 } else {
 
 $el
 .addClass("warning")
 .parent().parent()
 .find("td.row-total input")
 .val("");
 
 var titleClass = $el.parent().parent().find("td.product-title").attr("rel");
 
 removeName(titleClass);
 
 };
 
 // Calcuate the overal totals
 calcProdSubTotal();
 calcTotalPallets();
 calcShippingTotal();
 calcOrderTotal();
 
 });
     |