Foros del Web » Programando para Internet » Javascript »

Tabulador automatico (Generado por Focus() )

Estas en el tema de Tabulador automatico (Generado por Focus() ) en el foro de Javascript en Foros del Web. Hola a todos, como estan por el foro? Antes que nada Saludos. El problema o inquietud es lo siguiente, estoy tratando de generar en un ...
  #1 (permalink)  
Antiguo 14/10/2005, 09:23
 
Fecha de Ingreso: abril-2005
Mensajes: 92
Antigüedad: 19 años
Puntos: 0
Pregunta Tabulador automatico (Generado por Focus() )

Hola a todos, como estan por el foro?
Antes que nada Saludos.

El problema o inquietud es lo siguiente, estoy tratando de generar en un input un formato automatico de fecha, pero me tiene de cabeza, y me estan pidiendo entregar esta paginita lo mas rapido posible, asi que opte por tener tres input uno para dia, otro mes y otro año, su respectiva validacion ya esta hecha o casi lista, lo que quiero hacer es que cuando el input del dia llegue a su longitud maxima o sea 2 cambie el focus para el input del mes, ahora se me ocurre colocar document.form1.textmes.focus pero eso implica que necesito tener una funvion de validadion para cada dia de fecha y son 4 en ese formulario, si no me queda de otra lo tendre que hacer asi, pero alguien tendra una mejor idea?...

Muchas gracias por su ayuda.
__________________
Er_Duque

Última edición por Er_Duque; 14/10/2005 a las 14:53 Razón: cambio de titulo
  #2 (permalink)  
Antiguo 14/10/2005, 11:53
 
Fecha de Ingreso: abril-2005
Mensajes: 92
Antigüedad: 19 años
Puntos: 0
Sonrisa Solucion hasta el momento

Bueno hasta el momento ya solucione el asunto momentaneamente, aqui les dejo el código, despues estare trabajando para generar la fecha automatica dentro de un solo input, cuando tenga algo de tiempo...

JavaScript:
Código:
<script language="javascript">
/*Script para escribir la fecha en tres input distintos
Valida la fecha sin tomar en cuenta los dias del mes y los años bisiestos
Realizado por Er_Duque
*/
function valdia(campodia, caracter, mes){
  valor = campodia.value;
  largo = valor.length;
  if (valcaracter(campodia, caracter)){
    if (largo==1){
  	  if (caracter>3){
		mes.focus();
	  }
    }else{
      if (valor<=31){
	    mes.focus();
	  }else{
	    alert("Debe introducir un día menor a 31");
		campodia.value="";
		campodia.focus();
	  }
    }
  }
}
function valmes(campomes, caracter, anho){
  valor = campomes.value;
  largo = valor.length;
  if (valcaracter(campomes, caracter)){
    if (largo==1){
  	  if (caracter>1){
		anho.focus();
	  }
    }else{
      if (valor<=12){
	    anho.focus();
	  }else{
	    alert("Debe introducir un mes menor a 12");
		campomes.value="";
		campomes.focus();
	  }
    }
  }
}
function valanho(campoano, caracter){
  valor = campoanho.value;
  largo = valor.length;
  valcaracter(campoanho, caracter);
}
function valcaracter(texto, caracter){
  //Parte de la Funcion tomada de un script de Tunait.
  //Separadores de Miles mientras se escribe
  //http://javascript.tunait.com
  crtr = true;
  valor = texto.value;
  largo = valor.length;
  if(isNaN(caracter)){
    carcter = new RegExp(caracter,"g");
    valor = valor.replace(carcter,"");
    texto.value = valor;
	return false;
  }
  if (crtr==true){
    texto.value = valor;
	return true;
  }
}
Creacion de los input en html:
Código HTML:
<input type="text" name="txtdia" maxlength="2" class="FONTNORMAL" size="3" onKeyUp="javascript:valdia(this,this.value.charAt(this.value.length-1),document.frmprincipal.txtmes)">/
<input type="text" name="txtmes" maxlength="2" class="FONTNORMAL" size="3" onKeyUp="javascript:valmes(this,this.value.charAt(this.value.length-1),document.frmprincipal.txtanho)">/
<input type="text" name="txtanho" maxlength="4" class="FONTNORMAL" size="6" onKeyUp="javascript:valanho(this,this.value.charAt(this.value.length-1))"> 
Estos input pueden estar dentro de un TD de una tabla.
creo que para lo que hace esta bien, seguro se puede optimizar algo mas por alli pero ni idea.
Saludos y espero que les sea util.

cualquier sugerencia será bien agradecida.
__________________
Er_Duque

Última edición por Er_Duque; 14/10/2005 a las 13:29
  #3 (permalink)  
Antiguo 14/10/2005, 13:27
 
Fecha de Ingreso: abril-2005
Mensajes: 92
Antigüedad: 19 años
Puntos: 0
Pequeño detalle

como les dije estas funciones las estoy usando para un formulario que tienes varias fechas y varios campos mas... que pasa cuando selecciono el input del dia con el raton, todo perfecto, pero cuando en el input anterior (que no tiene nada que ver con la fecha) le doy a la tecla Tab para hacer el focus del dia de inmediato salta el focus para el mes, esto tambien pasa con las flecas o caracteres especiales del teclado. El problema es que si mal no recuerdo dichas teclas especiales tiene una especie de doble valor, no recuerdo muy bien, pero asumo que la solucion debe ser dada en la funcion valcaracter donde se verifica si es un numero o no... ahora si creo que mi conocimiento de javascript esta como que algo limitado todavia y no creo conocer las herramientas para solucionar esto...

si llego a encontrar alguna solucion antes de recibir alguna opinion pues la publicare para evitar ese error en quienes usen este script

Saludos y gracias
__________________
Er_Duque
  #4 (permalink)  
Antiguo 14/10/2005, 19:36
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
A ver, primero mira este link. En el podras encontrar un ejemplo, de cómo usar el atributo tabindex.
A continuacion te muestro parte de un codigo, como saber si se presiono la flecha abajo:
Código:
function f(e)
{
  tecla=(document.all) ? e.keyCode : e.which;
  if (tecla == 40) { //haces lo que tienes que hacer}
}
Por ultimo, te recomiendo ver esta pagina. Creo que te va a gustar
Espero haberte ayudado en algo
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #5 (permalink)  
Antiguo 17/10/2005, 11:41
 
Fecha de Ingreso: abril-2005
Mensajes: 92
Antigüedad: 19 años
Puntos: 0
Hola flaviovich.

Hasta hoy es que me estoy conectando nuevamente. El fin de semana fue relajante sin computadoras...

esta bastante interesanto el ultimo link... pues si me gusto mucho jejeje.
con lo anterior esta bastante bien... me estoy sentando a verificar lo de tabindex y la parte de la funcion que mencionas.

muchas gracias por tu respuesta.
__________________
Er_Duque
  #6 (permalink)  
Antiguo 17/10/2005, 13:35
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Para eso estamos: para que ayudandonos mutuamente, mejoremos
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:13.