Tengo un formulario de pedido en el que uso el complemento de cálculo de jQuery para resumir el total.
Este resumen funciona bien, pero hay un problema con la 'suma' producida. En la suma, deseo reemplazar cualquier punto con una coma.
La base del código es;
function ($this) { var sum = $this.sum(); $("#totaal").html("€ " + sum2); }
El uso de un .replace() directamente en la suma de var no funciona (la función a la que se hace referencia no está disponible en el objeto). También probé esto (pero sin efecto);
var sum2 = sum.toString().replace(',', '.');
Como soy un poco nuevo en jQuery, estoy bastante atascado ahora, ¿alguien podría indicarme la dirección correcta?
Su línea de reemplazo es casi correcta. Debe usar una expresión regular con la opción g
, que indica reemplazar todas las instancias en lugar de solo la primera. También tiene el orden intercambiado (primero es qué encontrar, segundo es con qué reemplazarlo).
var sum2 = sum.toString().replace(/\./g, ',');
Tenga en cuenta el \
antes del .
: .
tiene un significado especial en RegExp, por lo que debe escaparse.
Si Sum fuera un número, entonces esto funcionaría.
var sum_formatted = String( sum ).replace(/\./g,',');
¿Puedes ejecutar typeof(sum) y decirnos cuál es el resultado?
Además, si puede configurar el proyecto en jsfiddle.com, sería genial.
Su problema es que su función de reemplazo debe leer replace('.', ',')
no al revés (usted tenía replace(',', '.')
), Tenga en cuenta que el primer argumento es lo que está buscando for, y el segundo argumento es lo que quiere allí en su lugar. Estabas reemplazando todas las comas con puntos. Regex aquí es innecesario.