Ir para conteúdo

POWERED BY:

Arquivado

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

webdev

Checar campo de DATA no formato (dd/mm/aaaa)

Recommended Posts

Eu gostaria de fazer com que um campo de data (no formato dd/mm/aaaa) somente pudesse receber:

 

* numeros e somente 2 algarismos em "dd", 2 em "mm", e 4 em "aaaa"

* checasse se estes campos estão vazios.

* checasse se estes campos contem espacos.

* fizesse com que à medida em que fossem digitados, por exemplo: 2 algarismos no campo "dd", o cursor mudasse o foco para o proximo campo e assim em diante..

 

Sabendo disto, procurei desenvolver meio que sem sucesso o código logo abaixo que aparentemente não está funcionando.

Quando eu clico em enviar, o form envia os dados mesmo estando vazio os campos de data, e tambem o código não está contando quantos algarismos contem cada campo e deixando assim que seja enviado o form com quantos numeros forem digitados.

 

O código é:

 

     /*********************************  INÍCIO DA VALIDAÇÃO DO CAMPO DATA  *********************************/  // ESPACO     var dd_espaco = document.frmcadastro.dd.value.indexOf(' ');     var mm_espaco = document.frmcadastro.mm.value.indexOf(' ');     var aaaa_espaco = document.frmcadastro.aaaa.value.indexOf(' ');  // TAMANHO     var dd_tamanho = document.frmcadastro.dd.value.length;     var mm_tamanho = document.frmcadastro.mm.value.length;     var aaaa_tamanho = document.frmcadastro.aaaa.value.length;    // CHECANDO TAMANHO OU VAZIO  if ((dd_tamanho > 2) || (dd_tamanho <= 0)) {  alert('Campo DD não deve conter mais que 2 algarismos ou está vazio.');  return false;  }  if ((mm_tamanho > 2) || (mm_tamanho <= 0)) {  alert('Campo MM não deve conter mais que 2 algarismos ou está vazio.');  return false;  }  if ((aaaa_tamanho > 4) || (aaaa_tamanho <= 0)) {  alert('Campo AAAA não deve conter mais que 4 algarismos ou está vazio.');  return false;  }    // CHECANDO ESPACO     if ((dd_espaco != -1) || (mm_espaco != -1) || (aaaa_espaco != -1)) {     alert('Um dos campos de data (dd/mm/aaaa) contém espaco. CORRIJA!');     return false;     }
O que pode estar errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seginte, se você usa o DW, ele cria uma validação lá basta que você separe os campos da data, ou seja, um campo so p/ digitar a data, outro so p/ o mes e outro somente p/ o nao, no sistema de validar do Dw, você pode escolher a quantidade de datas, salvo engano de minha parte, pois nunca preciseiusar isso...Mas está na caixa de comportamentos, no sinal de mais que fica no canto superior e esquerdo da caixa, click lá e escolha validar email, mas antes, marque o botão enviar ou submit, ok??[]sRodney

Compartilhar este post


Link para o post
Compartilhar em outros sites

pra não ter mais esse tipo de problema sempre que preciso de campos tipo data, hora eu coloco em campos do tipo select :

 

 

http://www.barflyms.com/javascript/data_hora.html

 

 

<html><head><title>JavaScript - DATA, HORA</title><script language=javascript>	hoje = new Date();	ds = hoje.getDay();	dia = hoje.getDate();	mes = (hoje.getMonth()+1);	ano = hoje.getYear();	hora = hoje.getHours();	minuto = hoje.getMinutes();	segundo = hoje.getSeconds();	function meses(x){  mes1 = "Janeiro,Fevereiro,Março,Abril,Maio,Junho,Julho,Agosto,Setembro,Outubro,Novembro,Dezembro";  mes1 = mes1.split(",");  return mes1[x];	}</script></head><body><select name=ano><script language=JavaScript>	inicio = (ano - 100);	fim = ano;	selecionado = ano;	for(i=inicio;i<=fim;i++){  document.write("<option value=\""+i+"\"");  if(i==selecionado){document.write(" selected");}  document.write(">"+i+"</option>");	}</script></select><select name=mes><script language=JavaScript>	inicio = "1";	fim = "12";	selecionado = mes;	for(i=inicio;i<=fim;i++){  if(i<10){valor = "0"+i;}else{valor = i;}  document.write("<option value=\""+valor+"\"");  if(i==selecionado){document.write(" selected");}  document.write(">"+meses(i-1)+"</option>");	}</script></select><select name=dia><script language=JavaScript>	inicio = 1;	fim = 31;	selecionado = dia;	for(i=inicio;i<=fim;i++){  if(i<10){valor = "0"+i;}else{valor = i;}  document.write("<option value=\""+valor+"\"");  if(i==selecionado){document.write(" selected");}  document.write(">"+valor+"</option>");	}</script></select><select name=hora><script language=JavaScript>	inicio = 0;	fim = 23;	selecionado = hora;	for(i=inicio;i<=fim;i++){  if(i<10){valor = "0"+i;}else{valor = i;}  document.write("<option value=\""+valor+"\"");  if(i==selecionado){document.write(" selected");}  document.write(">"+valor+"</option>");	}</script></select><select name=minuto><script language=JavaScript>	inicio = 0;	fim = 59;	selecionado = minuto;	for(i=inicio;i<=fim;i++){  if(i<10){valor = "0"+i;}else{valor = i;}  document.write("<option value=\""+valor+"\"");  if(i==selecionado){document.write(" selected");}  document.write(">"+valor+"</option>");	}</script></select><select name=segundo><script language=JavaScript>	inicio = 0;	fim = 59;	selecionado = segundo;	for(i=inicio;i<=fim;i++){  if(i<10){valor = "0"+i;}else{valor = i;}  document.write("<option value=\""+valor+"\"");  if(i==selecionado){document.write(" selected");}  document.write(">"+valor+"</option>");	}</script></select></body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem eu uso o Dreamweaver mx mas somente uso para escrita de código mesmo, não uso nada do que ele tem de pronto até mesmo porque não gosto desses botoezinhos automaticos que fazem tudo de prontidão pra gente.. Não tenho nada contra isso, acredito que é até favorável ao usuario, mas é que eu não gosto é a minha opinião.Mas bem, eu tentei fazer o que você propos e como o meu Dreamweaver é em Ingles, eu não achei esse negocio de comportamentos aqui..Se não me engano deve ser em behaviours, mas lá NÃO TEM NADA de validação de email não,v pelo menos aqui somente tem algumas poucas opções..Será que eu tenho que instalar algum plugin aqui onde possa aparecer essa opção de email?Obrigado pela sugestao..até logo mais..

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.