Me ajudem com JavaScript

JavaScript

15/01/2018

Boa Tarde!
Estou com um problema em JS, preciso verificar os valores de 2 campos e compara-los, estes estão com mascaras em R$, quando utilizo JS retiro as virgulas e coloco pontos e retiro os pontos e não coloco nada, na teoria isto ia funcionar, porem, o JS coloca um ponto automaticamente quando o valor passa de 999,99
ou seja quando eu vou comparar um valor de R$ 1.000,00 o JS não aceita retirar o 1 ponto e colocar um ponto no lugar da virgula, assim o valor fica comparado como 1. Segue meu código. Me ajudem a resolver este problema com o próprio JS ou me recomendem outra maneira de fazer
Obrigado
function envia(){
            var valorSacar = document.getElementById("valor").value;
            var saldo = document.getElementById("saldoRetirar").value;
            var saldoA = saldo.replace(",", ".");
            if(valorSacar != ""){
                var valorSacarA = valorSacar.replace(".", "");
                var valorSacarA = valorSacar.replace(",", ".");
            if(valorSacarA <= 0){
                    alert("Informe um valor maior que R$ 1,00!");
                }
                    else if (valorSacarA > saldoA){
                    alert("Valor acima do disponivel!");
                }
                    else {
                    //document.getElementById("enviar").submit();
                }
            } else {
                alert("Campo em branco!");
            }   
        }
Mateus Henrique

Mateus Henrique

Curtidas 0

Melhor post

Alex William

Alex William

15/01/2018

Cara, tu ta mandando ele dar os dois replace na mesma string:

Ai ele substitui o ponto por nada na string "2.000,00" por exemplo, depois pega a mesma string e substitui a virgula, ai a variavel fica com valor "2.000.00".

Olha como ficou o script corrigido:

function envia()
    {
        var valorSacar = "2.000,00";
        var saldo = "5.000,00";
        var saldoA = saldo.replace(".", "");
        var saldoB = saldoA.replace(",", ".");

        if(valorSacar != ""){
            var valorSacarA = valorSacar.replace(".", "");
            var valorSacarB = valorSacarA.replace(",", ".");

        if(valorSacarA <= 0){
                alert("Informe um valor maior que R$ 1,00!");
            }
                else if (valorSacarB > saldoB){
                alert("Valor acima do disponivel!");
            }
                else {
                //document.getElementById("enviar").submit();
                alert(valorSacarB);
            }
        } else {
            alert("Campo em branco!");
        }   
    }


Espero ter ajudado. :D


Só substitui "valorSacarA" por "valorSacarB" no if, eu esqueci :p
GOSTEI 1

Mais Respostas

Alex William

Alex William

15/01/2018

Cara, tu ta mandando ele dar os dois replace na mesma string:

Ai ele substitui o ponto por nada na string "2.000,00" por exemplo, depois pega a mesma string e substitui a virgula, ai a variavel fica com valor "2.000.00".

Olha como ficou o script corrigido:

function envia()
    {
        var valorSacar = "2.000,00";
        var saldo = "5.000,00";
        var saldoA = saldo.replace(".", "");
        var saldoB = saldoA.replace(",", ".");

        if(valorSacar != ""){
            var valorSacarA = valorSacar.replace(".", "");
            var valorSacarB = valorSacarA.replace(",", ".");

        if(valorSacarA <= 0){
                alert("Informe um valor maior que R$ 1,00!");
            }
                else if (valorSacarB > saldoB){
                alert("Valor acima do disponivel!");
            }
                else {
                //document.getElementById("enviar").submit();
                alert(valorSacarB);
            }
        } else {
            alert("Campo em branco!");
        }   
    }


Espero ter ajudado. :D
GOSTEI 0
POSTAR