Ir para conteúdo

POWERED BY:

Arquivado

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

Rodolfo TI

Datepicker só valida na segunda vez que seleciona data

Recommended Posts

E aí galera beleza fiz um javascript aqui pra validar data do datepicker, porém ele só valida na segunda vez, o que devo fazer ?

 

Abaixo segue o Script:

 

JS:

 

{% block javascript %}
    
   
    <script src="//cdnjs.cloudflare.com/ajax/libs/jquery-form-validator/2.1.15/jquery.form-validator.min.js"></script>    
    <script type="text/javascript">
    $(function ($) {

    $.datepicker.regional['pt'] = {
        closeText: 'Fechar',
        prevText: '<Anterior',
        nextText: 'Seguinte',
        currentText: 'Hoje',
        monthNames: ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho',
        'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'],
        monthNamesShort: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun',
        'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'],
        dayNames: ['Domingo', 'Segunda-feira', 'Terça-feira', 'Quarta-feira', 'Quinta-feira', 'Sexta-feira', 'Sábado'],
        dayNamesShort: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb'],
        dayNamesMin: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb'],
        weekHeader: 'Sem',
        dateFormat: 'dd/mm/yy',
        firstDay: 0,
        isRTL: false,
        showMonthAfterYear: false,
        yearSuffix: ''
    };
    $.datepicker.setDefaults($.datepicker.regional['pt']);
    });

    $(document).ready(function(){


       
        $( "#datepicker" ).datepicker({ minDate: -30, maxDate: "+0M +0D" });
        
        $('.horario').mask('99:99');

    });

    $.validate({
         modules : 'date',
            validateOnBlur : true,
             
    });  
    

  </script>
   <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
   <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>

E o html

<div class="form-group">
                  <label class="col-lg-4 control-label">
                    Data Ocorrência: 
                  </label>
                  <div class="col-lg-4">
                  <input type="text" id="datepicker" class="col-lg-4 form-control data-ocorrencia" name="data-ocorrencia" id="data-ocorrencia"  data-validation="date" data-validation-format="dd/mm/yyyy" data-validation-help="Ex: 27/03/1992" 
                  data-validation-error-msg="Digite uma data válida, conforme o exemplo."
                  placeholder="Digite a Data" value="00/00/00">
                  </div>

                </div>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloca o jquery.ui antes de tudo.

 

e veja se aparece algum erro no console: ctrl+shift+j no firefox ou no chrome.

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloca o jquery.ui antes de tudo.

 

e veja se aparece algum erro no console: ctrl+shift+j no firefox ou no chrome.

Beleza, passei pro inicio mas mesmo assim não foi aí no console filtrei por js, e o retorno foi:

 

[10:31:59.704] SyntaxError: Using //@ to indicate source map URL pragmas is deprecated. Use //# instead @ http://localhost/portal/NE/assets/js/jquery.js:1
--
[10:32:00.309] O método getPreventDefault() não deve mais ser usado. No lugar, use defaultPrevented. @ http://localhost/portal/NE/assets/js/jquery.js:5
--
[10:32:29.260] SyntaxError: Using //@ to indicate source map URL pragmas is deprecated. Use //# instead @ http://localhost/portal/NE/assets/js/jquery.js:1
[10:32:29.796] O método getPreventDefault() não deve mais ser usado. No lugar, use defaultPrevented. @ http://localhost/portal/NE/assets/js/jquery.js:5
--
[10:33:47.222] SyntaxError: Using //@ to indicate source map URL pragmas is deprecated. Use //# instead @ http://localhost/portal/NE/assets/js/jquery.js:1
[10:33:47.869] O método getPreventDefault() não deve mais ser usado. No lugar, use defaultPrevented. @ http://localhost/portal/NE/assets/js/jquery.js:5

Compartilhar este post


Link para o post
Compartilhar em outros sites

na verdade, é algum código seu que está fazendo disparar um erro dentro do jQuery.

 

tem muito js que vc escreveu ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

na verdade, é algum código seu que está fazendo disparar um erro dentro do jQuery.

 

tem muito js que vc escreveu ?

 

na verdade, é algum código seu que está fazendo disparar um erro dentro do jQuery.

 

tem muito js que vc escreveu ?

Tem muito não, só abaixo:

 

{% block javascript %}
    
   
    <script src="//cdnjs.cloudflare.com/ajax/libs/jquery-form-validator/2.1.15/jquery.form-validator.min.js"></script>    
    <script type="text/javascript">
    $(function ($) {

    $.datepicker.regional['pt'] = {
        closeText: 'Fechar',
        prevText: '<Anterior',
        nextText: 'Seguinte',
        currentText: 'Hoje',
        monthNames: ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho',
        'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'],
        monthNamesShort: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun',
        'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'],
        dayNames: ['Domingo', 'Segunda-feira', 'Terça-feira', 'Quarta-feira', 'Quinta-feira', 'Sexta-feira', 'Sábado'],
        dayNamesShort: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb'],
        dayNamesMin: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb'],
        weekHeader: 'Sem',
        dateFormat: 'dd/mm/yy',
        firstDay: 0,
        isRTL: false,
        showMonthAfterYear: false,
        yearSuffix: ''
    };
    $.datepicker.setDefaults($.datepicker.regional['pt']);
    });

    $(document).ready(function(){


       
        $( "#datepicker" ).datepicker({ minDate: -30, maxDate: "+0M +0D" });
        
        $('.horario').mask('99:99');

    });

    $.validate({
         modules : 'date',
            validateOnBlur : true,
             
    });  
    

  </script>
   <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
   <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>

 

Acho que não é muiito, qual a melhor forma de debugar, ir tirando um a um ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom mudei o código fiz tudo no "$(document).ready(function(){"

 

aí ficou assim:

 

$(document).ready(function(){

        $.datepicker.regional['pt'] = {
            closeText: 'Fechar',
            prevText: '<Anterior',
            nextText: 'Seguinte',
            currentText: 'Hoje',
            monthNames: ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho',
            'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'],
            monthNamesShort: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun',
            'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'],
            dayNames: ['Domingo', 'Segunda-feira', 'Terça-feira', 'Quarta-feira', 'Quinta-feira', 'Sexta-feira', 'Sábado'],
            dayNamesShort: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb'],
            dayNamesMin: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb'],
            weekHeader: 'Sem',
            dateFormat: 'dd/mm/yy',
            firstDay: 0,
            isRTL: false,
            showMonthAfterYear: false,
            yearSuffix: ''
        };
    
        $.datepicker.setDefaults($.datepicker.regional['pt']);

        $( "#datepicker" ).datepicker({ minDate: -30, maxDate: "+0M +0D" });

        $('.horario').mask('99:99');

        $('#datepicker').mask('99/99/9999');

        $.validate({ modules : 'date', validateOnBlur : true});
    });

só que ele chama, faz a mascara e tal, mas se o usuário digitar 99/99/9999 ele não valida ele até poe a mascara mas não valida, eu achei que o seguinte comando:

 

 $.validate({ modules : 'date', validateOnBlur : true});

seria pra isso, tenho que modificar ele de alguma forma pra ele saber qual campo ta validando ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que descobri o problema, é no meu html, estou fazendo a validação duas vezes

 

<label class="col-lg-4 control-label">
                        Data Ocorrência: 
                    </label>
                    <div class="col-lg-4">
                        <input type="text" 
                            id="datepicker" 
                            class="col-lg-4 form-control data-ocorrencia" 
                            name="data-ocorrencia" 
                            data-validation="date" 
                            data-validation-format="dd/mm/yyyy" 
                            data-validation-help="Ex: 27/03/1992" 
                            data-validation-error-msg="Digite uma data válida, conforme o exemplo."
                        >
                  </div>

Essa validação quando seleciono a primeira vez ele não aceita na segunda sim.

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.