Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

RafaCordL

A data da dose não pode ser maior que a data atual

Recommended Posts

Olá galera, quero fazer essa função funcionar mas não vai, queria saber se me ajudam a encontrar o erro...

function meningite_data_outro33(){
    $("input[name='dt_dose_outro']").bind('change',function(){
        var data = document.getElementById('dt_dose_outro').value;
        var objDate = new Date();
        objDate.setYear(data.split("/")[2]);
        objDate.setMonth(data.split("/")[1]  - 1);
        objDate.setDate(data.split("/")[0]);

        if(objDate.getTime() > new Date().getTime()){
            alert("A data da dose não pode ser maior que a data atual!");
            document.getElementById('dt_dose_outro').focus();
            $(this).val('').focus();
          return false;
        }
    });
}

Obrigada

Compartilhar este post


Link para o post
Compartilhar em outros sites

o parâmetro de bind é apenas "blur", não "onblur". "onBlur" é o nome do evento, se for usar JavaScript puro.

 

Se quiser executar a validação sempre que houver modificação no input, pode usar "keyup" em vez de "change". Porém isso vai executar a função sempre que uma tecla for pressionada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não está entrando na função, mandei um alerta nela mas não funfou.

Eu criei uma igual, mas no lugar do name está uma id, e funciona perfeitamente.

Mas nesse não tem como por id. --' Ai que ta o problema, tem alguma coisa errada nessa linha.

Coloquei suas soluções mas mesmo assim não vai.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acabei de testar aqui e deu certo. Usei este JS:

 

 

<script type="text/javascript">
            $( "input[name='dt_dose_outro']" ).bind( 'blur', function()
            {
                alert( 'ok' );
            });
</script>

 

Ao clicar fora do input, o alert é exibido

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em que parte do seu código você colocou esse trecho? Há duas possibilidades:

 

1. Se colocar no head, tem que estar dentro do ready(), do jQuery

2. Colocar antes do </body>, para carregar a função apenas depois de todo o HTML ter sido carregado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está em um arquivo separado só para a ficha de meningite.

É um projeto com 47 fichas...

E eu chamo a função aqui normalmente, como chamo todas as outras.

$(document).ready(function(){
...
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Minha sugestão é que se esta utilizando jquery mesmo, faça diretamente:

<input type="text" name="dt_dose_outro" id="dt_dose_outro">
$("input[name='dt_dose_outro']").on('blur',function(){
    var data = document.getElementById('dt_dose_outro').value;
    var objDate = new Date();
    objDate.setYear(data.split("/")[2]);
    objDate.setMonth(data.split("/")[1]  - 1);
    objDate.setDate(data.split("/")[0]);
    if(objDate.getTime() > new Date().getTime()){
        alert("A data da dose não pode ser maior que a data atual!");
        document.getElementById('dt_dose_outro').focus();
        $(this).val('').focus();
        return false;
    }
});

Exemplo online - http://jsfiddle.net/angelorubin/hmx33pmf/4/

 

Espero que ajude.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, acabou que pedi ajuda de um colega e fizemos de um jeito diferente e foi.

function meningite_data_outro33(){
    $("input[name='dt_dose_outro']").bind('change',function(){
        var dataDose = $(this).val();
        if(dataDose = "__/__/____") return false;
        var dataAtual = $('#dt_alteracao').val();
        var vtData = dataDose.split("/");
        var ano = vtData[2];
        var mes = vtData[1];
        var dia = vtData[0];
        dataDose = ano+mes+dia;
        vtData = dataAtual.split("-");
        ano = vtData[0];
        mes = vtData[1];
        dia = vtData[2];
        dataAtual = ano+mes+dia;
        
        if(dataDose > dataAtual){
            alert("A data da dose não pode ser maior que a data atual!");
            $(this).val('').focus();
            return false;
        }
    });
}

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.