Categorias

Arquivos

Plugin do Jcalendar em Português

Postado em Julho 19th, 2007 por Alexandre Magno

Jquery

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

Como funciona o Jcalendar?

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.

Alguns exemplos do Jcalendar

Parâmetros

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:

  • autoPopUp - Especifica se o calendário vai aparecer quando o usuário der focus no campo (focus), quando o ícone for clicado (buttom), ou em ambos os casos(both)
  • buttomImageOnly - Coloca somente a imagem, aceita true ou false
  • buttomImage - especifica a imagem que será o ícone do calendário
  • buttomText - especifica o texto do 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.

Considerações finais

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.


Comentários

Assine o RSS para comentários

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

Deixe seu comentário

Os seguintes campos estão incorretos ou faltando

  • Listagem dos campos faltando
(Não será publicado) * Campos obrigatórios