Weblosofia com CSS, Jquery, Javascript, Ajax, PHP etc.
por Alexandre Magno
Postado em Julho 19th, 2007 por Alexandre Magno
O Jquery oferece um Plugin para escolha de datas em campos de textos excelente. Ele se chama Jcalendar. Ele é amplamente customizável e a aparência pode ser controlada totalmente por CSS. O único problema que sua estrutura é em inglês e ao traduzir as strings no arquivo original, o layout bagunça um pouco. Então resolvi fazer uma versão em português para quem quiser implementar em seu site. Quem já tem implantado, basta substituir o arquivo.
Versão em Português do Jcalendar
CSS adpatdo do Jcalendar para a versão em Português
Para o seu funcionamento, estes dois arquivos tem que estar referenciados no head do documento(O Jquery, e o plugin):
Para o script:
<script src="jquery.js" type="text/javascript"> </script> <script src="jquery.calendar.js" type="text/javascript"> </script>
Para o CSS:
<style type="text/css"> @import url(jquery-calendar.css); </style>
Depois disto, para aplicar um simples calendário, utilize as seguintes linhas:
$('input selector').calendar();
É possível também passar várias configurações, como autopopup, ícone em image, o formato da data etc.
O código para o segundo exemplo encontra-se abaixo:
$('input selector').calendar({autoPopUp: 'both', buttonImageOnly: true, buttonImage: 'calendar.gif', buttonText: 'Calendar'});
Assim, com esses parâmetros você especifica uma imagem para servir de ícone como calendário:
Se desejar mudar o layout, apenas modifique o CSS. Uma boa maneira de se orientar na hora de montar é usar o firebug para ver o nome das classes e ids no formulário, mas fica a critério de vocês.
O jCalendar não funciona no IE 6 e 7 se for referenciado no script sem o import, portanto, não deixem de colocar como está listado acima. O Opera apresenta um bug no dimensionamento do box do calendário. Vou tentar solucionar e posto aqui quando conseguir, mas ele funciona muito bem na maioria dos Browsers. Se tiverem algum problema, comentem que eu posso ajudar quando for possível.
Neto comentou:
29th Agosto, 2007 às 9:33 am
Muito bom!
Breno comentou:
5th Outubro, 2007 às 8:32 am
E o problema do Opera, resolveu??? Fora isso, perfeito…
Breno comentou:
5th Outubro, 2007 às 8:37 am
Desculpe-me postar novamente, mas é que consegui resolver o problema do OPERA… caso alguém não tenha solucionado ainda, no class do css ‘calendar_div’ acrescente ‘width:185px;’, sem as aspas, óbvio… aqui funfou… obrigado…
admin comentou:
5th Outubro, 2007 às 10:35 am
Que isso breno, poste quantas vezes quiser, muito obrigado pela solução do problema, só estava faltando este pequeno detalhe para ficar perfeito…
abraços…
Rafael Soares comentou:
20th Maio, 2008 às 12:52 pm
E ai rapaz, tuo Bem? Bem, muito bom o POST, realmente me ajudou bastante, só tive um contratempo estranho, que as vezes acontece comigo usando JQuery. Eu peguei a ultima versão da JQuery no site oficial, estava usando ela para fazer meus scripts. No entando, estava tendo problemas com o JCalendar, pois quando eu clicava no ícone para abrir o calendario, ele não abria, só abria quando licava na Input Text, por mais que eu colocasse o parametro “autoPopUp: ‘both’.”. Decidi então pegar o JQuery que você usou, e tcharam! Funcionou!! Bem, seria legal talvez você testar alguma hora e ver se tem algo que se possa fazer para funcionar com a ultima versão da Jquery(que deveria ser a que tem menos Bugs!).
Bem, é isso, um abraço e parabéns pelo blog!
Att.
Rafael S.
admin comentou:
21st Maio, 2008 às 11:22 am
@Rafael: Muito obrigado Rafael. A questão não é tanto bug na nova versão do jQuery, mas alguns plugins em novas versões tornam-se incompatíveis dependendo da maneira como foram feitos. Muitas vezes os desenvolvedores de plugins não lançam uma versão nova que adapta a novas versões. E isto gera muitos bugs, mas plugins consagrados, como o interface são incompatíveis com versões novas. Abraços e boa sorte!
Pyro comentou:
10th Outubro, 2008 às 2:05 pm
Esse foi o único exemplo simples e funcional do jQuery Calendar, só que no meu caso eu preciso utilizar em vários campos no mesmo formulário, e em determinado ponto dá um erro alegando que tem muitos campos e não preenche mais.
Alguém aqui já passou por isso?
Alexandre Magno comentou:
10th Outubro, 2008 às 2:18 pm
@Pyro: Por favor, passe alguma página de exemplo ou exatamente o erro e como você está utilizando o calendário. Abraços e boa sorte.
Eder Feliciano comentou:
15th Outubro, 2008 às 10:28 am
Olá Alexandre,
Muito bom este POST, so que tive um probleminha com a utilização dele.
Em algumas máquinas, quando abre o calendário, aparece como o dia 13/10/2008 sendo uma terça-feira, quando o correto é segunda-feira.
Você já teve este tipo de problema? Tem alguma dica de como resolver?
Obrigado.
Alexandre Magno comentou:
16th Outubro, 2008 às 9:53 am
@Eder: Nunca vi este tipo de problema Eder. Vou dar uma olhada e se souber de algo te aviso. Se conseguir achar a solução poste aqui. Abraços.
claudio comentou:
4th Novembro, 2008 às 3:02 pm
Já pereceberam que o dia 11 de Outubro sai duplicado no Jcalendar.
Podem conferir incluisive no exemplo de este Blog?
Alguém sabe como corrigir?
Obrigado, Claudio
Os seguintes campos estão incorretos ou faltando