Boa tarde amigos,
sou novato no Jquery e gostaria de uma ajuda de vocês.
Tenho um campo input com "type=date" que funciona no chrome e Edge. Porém IE e Firefox não. Até ati tudo bem.
Fiz o seguinte:
1- Criei o campo input
<input type="date" class="form-control" rel="data" id="datepicker" placeholder="Ex: 01/01/1990" name="data_nascimento">
2- Criei uma função para verificar se é IE e Firefox. Se for ele verifica a quantidade de números (8), tamanho da data. Senão ele exibe uma msg de erro.
$.fn.maskData = function (e) {
if ($.browser.mozilla) {
$('input[id=datepicker]').datepicker({
format: 'dd/mm/yyyy',
weekStart: 0,
startDate: '0d',
todayHighlight: true,
autoClose: true
});
$(this).blur(function () {
var data = $(this).val();
var id = $(this).attr('id');
data = data.replace(/\D/g, '');
var data_tamanho = data.length;
var msg_erro = 'Data inválida';
if (data_tamanho == 8) {
$('.' + id).remove();
$(this).css('border', '');
data = data.replace(/(\d{2})(\d{2})/, "$1/$2/")
$(this).val(data);
} else {
if (data_tamanho < 1) {
$('.' + id).remove();
$(this).css('border', '');
} else {
$('.' + id).remove();
$(this).css('border', '1px solid #ff0000');
$(this).after('<span class="' + id + ' erro btn btn-danger">' + msg_erro + '</span>');
$('#' + id).focus();
}
}
})
}
}
Até ai tudo funciona normalmente.
Quando clico no campo aparece o Calendario normal. Porém se eu apagar algum digito e sair do campo o evento "blur" entra em ação validando e traz o erro. Mas depois disso o calendário não aparece mais. Posso clicar quantas vezes for que não aparece. Somente aparece no primeiro clique ao carregar a pagina.
Neste caso gostaria da ajuda para saber onde estou errando. Para que quando eu clique no campo, sempre apareça o calendário e depois passe pela validação ao deixar o campo.
Obrigado a todos.