Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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](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>>
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
é algo do jquery mesmo ? não tem problema se alterar ?
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 ?
>
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](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 ?
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 ?
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.
coloca o jquery.ui antes de tudo.
e veja se aparece algum erro no console: ctrl+shift+j no firefox ou no chrome.