Me ajudem com JavaScript

15/01/2018

0

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

Responder

Post mais votado

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

Alex William

Alex William
Responder

Mais Posts

15/01/2018

Alex William

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
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar