Es la primera vez que posteo aquí, pero si he seguido el foro desde hace ya, enhorabuena a los administradores.
Os cuento lo que quiero hacer, básicamente lo que quiero hacer es comparar dos grupos de importes, por ejemplo por un lado (valor1 y valor2), y por otro lado (valor3 y valor4).
Por un lado, solo inicio la comparación en el caso de que este relleno el valor 1 y el valor3 a la vez.
Además, solo quiero que haga la comparación cuando la suma total de los valores 3 y 4 sea superior a la suma total de los valores 1 y 2.
Mi código hasta ahora
Código:
El problema que tengo es que no tiene porque haber valor en el campo valor2 y valor4, y me devuelve un NaN.//Validar suma importe function validarImporte(valor12, valor34) { var valor1 = Dom.get("valor1").value; var valor1Desform = valor1.toString().replace(/\./g,''); var valor1Desform1 = valor1Desform.toString().replace(/\,/g,'.'); var valor2 = Dom.get("valor2").value; var valor2Desform = valor2.toString().replace(/\./g,''); var valor2Desform1 = valor2Desform.toString().replace(/\,/g,'.'); var valor3 = Dom.get("valor3").value; var valor3Desform = valor3.toString().replace(/\./g,''); var valor3Desform1 = valor3Desform.toString().replace(/\,/g,'.'); var valor4 = Dom.get("valor4").value; var valor4Desform = valor4.toString().replace(/\./g,''); var valor4Desform1 = valor4Desform.toString().replace(/\,/g,'.'); var valor12 = parseFloat(valor1Desform1) + parseFloat(valor2Desform1); var valor34 = parseFloat(valor3Desform1) + parseFloat(valor4Desform1); if ( valor12 > 0 && valor34 > 0) { if (valor34 > valor12) { return "<b>${msg("validation.valorIncorrecto")} <br/>"; } } return ""; }
Igual es un desastre el código hasta ahora, pero mis conocimiento en js son algo escasos.
Se me olvidó añadir que los importes están en formato 9.999,99 y por ello los desmormateo para poder trabajar con ellos.
Gracias y saludos,