Vereis, en el cuerpo de la factura tengo una tabla con sus X filas y con las columnas "Cantidad" "Descripcion" "Unidades" y "Total".
Yo me he creado el siguiente script, al que llamo desde un input con el evento onBlur...
Código:
function calcular(contador) { var unidades = document.getElementById('cantidad'+contador).value; var precio = document.getElementById('unidad'+contador).value; var resultado = document.getElementById('precio'+contador).value; //Compruebo que no tiene puesto ya el simbolo del €, comprobando que el ultimo caracter no sea el simbolo del € (String.fromCharCode(8364) if(precio.charAt(precio.length-1)==String.fromCharCode(8364)){ //Formateo la variable precio para quitarle el simbolo del € quitarCaracter(precio); resultado=quitarCaracter(resultado); parseFloat(resultado)=unidades*precio; } else{ document.getElementById('unidad'+contador).value=precio+' '+ String.fromCharCode(8364); } resultado=unidades*precio; document.getElementById('precio'+contador).value = resultado+' '+ String.fromCharCode(8364); }
La primera vez que ejecuto el script lo hace todo correctamente, me lo calcula bien y al terminar de calcular concatena el simbolo del €, perfecto, la cuestion es que si qiuero editar la misma fila y en vez de poner 10 unidades pongo 20 no se actualiza el resultado, sin embargo si actualizo el precio de la unidad si lo hace bien...
El "onBlur" lo realizo desde el campo del precio total, es decir, al salir de la columna.. No se si me he explicado bien del todo..
Un saludo y gracias!