Ajude com array Javascript

2 respostas
dsombras

Estou fazendo um Script para formatar uma formato de data tipo DD/MM/AAAA e para isso estou ussando uma array para guardar os nomes do meses…
O problema é que a variavel que eu envio para retornar ao usuario fica “undefined”…

To postando o codigo para vcs darem uma olhada

"Nem preciso dizer que sou iniciante… :oops: "

<html>
<head>
<script language="javascript">
	function extenso(){
		var data=document.form1.data.value;
		var dia="";
		for(i=0;i<2;i++){
			dia+=data.charAt(i);
		}
		
		var mesx=new Array(12);
		mesx[0]="Janeiro";
		mesx[1]="Fevereiro";
		mesx[2]="Mar&ccedil;o";
		mesx[3]="Abril";
		mesx[4]="Maio";
		mesx[5]="Junho";
		mesx[6]="Julho";
		mesx[7]="Agosto";
		mesx[8]="Setembro";
		mesx[9]="Outubro";
		mesx[10]="Novembro";
		mesx[11]="Dezembro";
		var mes="";
		for(i=3;i<5;i++){
			mes+=data.charAt(i);
		}
		var mesf=mesx[mes];
		var ano="";
		for(i=6;i<10;i++){
			ano+=data.charAt(i);
		}
		
		
		alert("dia "+dia+" mes "+mesf+" ano "+ano);
	}
</script>
</head>
<body>
<form name="form1">
data:<input type="text" name="data">
<input type="submit" value="enviar" onclick="extenso()">
</form>
</body>
</html>

2 Respostas

bueno

Testando seu código no IE7 funciona parcialmente, ele só se perde na hora do mês

Existem muitas formas de se fazer o que vc quer, abaixo segue uma alteração no seu código.

<html>   
<head>   
<script language="javascript">   
    function extenso(){
		var mesx=new Array(12);   
        mesx[0]="Janeiro";   
        mesx[1]="Fevereiro";   
        mesx[2]="Março";   
        mesx[3]="Abril";   
        mesx[4]="Maio";   
        mesx[5]="Junho";   
        mesx[6]="Julho";   
        mesx[7]="Agosto";   
        mesx[8]="Setembro";   
        mesx[9]="Outubro";   
        mesx[10]="Novembro";   
        mesx[11]="Dezembro";   
		
        var data=document.form1.data.value.split('/');   
		
        alert("dia "+data[0]+" mes "+mesx[data[1]-1]+" ano "+data[2]);   
    }   
</script>   
</head>   
<body>   
<form name="form1">   
data:<input type="text" name="data">   
<input type="submit" value="enviar" onclick="extenso()">   
</form>   
</body>   
</html>
rodolfocop

Bom amigo!

Vou dar uma ajudinha nessa sua formatação!

de uma olhada nesse meu codigo bem simples de se entender qualquer duvida estou a disposição
function formataDataMesAno(campoData) 
{
	var checaString = "[telefone removido]";
	var varData = campoData;
	var dataValor = "";
	var dateTemporaria = "";
	var seperador = "/";
	var mes;
	var ano;
	var erro = 0;
	var contador;
	erro = 0;
   dataValor = varData.value;
   
	/* Deleta todos os caracteres exceto de 0 a 9. */
	for (contador = 0; contador < dataValor.length; contador++) 
	{
		if (checaString.indexOf(dataValor.substr(contador,1)) >= 0) 
		{
			dateTemporaria = dateTemporaria + dataValor.substr(contador,1);
		}
	}
   dataValor = dateTemporaria;
   
	if (dataValor.length == 4) 
	{
		dataValor = dataValor.substr(0,2) + '20' + dataValor.substr(2,4); 
	}
   if (dataValor.length != 6) 
	{
		erro = 19;
	}
   
	ano = dataValor.substr(2,6);
   if (ano == 0) 
	{
		erro = 20;
	}
   
	mes = dataValor.substr(0,2);
   if ((mes < 1) || (mes > 12)) 
	{
		erro = 21;
	}   
	if ((mes == 0) && (ano == 00)) 
	{
		erro = 0; mes = ""; ano = ""; seperador = "";
	}
	if (erro == 0) 
	{
		varData.value = mes + seperador + ano;
	}
   else 
	{
		if(erro == 19)
		{
			alert('A data deve conter o formato "DD/MM/AAAA". ');
			varData.value = "";
			varData.focus();
		}
		else
		{
			alert("Data inválida");
			varData.value = "";
			varData.focus();
		  return false;
		}
	}
}
Criado 25 de junho de 2008
Ultima resposta 21 de jul. de 2008
Respostas 2
Participantes 3