Foros del Web » Programando para Internet » Javascript »

getElementById ayuda

Estas en el tema de getElementById ayuda en el foro de Javascript en Foros del Web. Hola espero tengan un buen dia mi problema es el siguiente yo creo dinamicamente un formulario y en si en codigo pone asi <input type="text" ...
  #1 (permalink)  
Antiguo 23/05/2005, 16:33
 
Fecha de Ingreso: marzo-2003
Mensajes: 99
Antigüedad: 21 años, 2 meses
Puntos: 0
getElementById ayuda

Hola
espero tengan un buen dia
mi problema es el siguiente

yo creo dinamicamente un formulario y en si en codigo pone asi


<input type="text" name="cajaTexto[]" id="int[]"
lo que esta en color azul cambia dependiendo del tipo de dato que deba llevar la caja de texto puede ser id="int[]" , id="varchar[]", etc

es lo que se me ocurrio para poder validar los datos pero tengo un problema con el getElementById

utilizo getElementsByName para corroborar que no esten vacios
var ctxt = document.getElementsByName("cajaTexto[]");

var len = ctxt.length;
for( i=0; i<len; i++ ){
ctxt[i].value = trim( ctxt[i].value );
if(ctxt[i].value.length == 0){
alert('Todos los campos son obligatorios');
ctxt[i].focus();
return false;
}
}

y deseo utilizar el id para validar el tipo de dato pero no me toma el arreglo
lo uso asi en realidad no se si getElementById lopueda hacer como con getElementsByName garcias por su ayuda si tienen sugerencias bien venidas saludos
  #2 (permalink)  
Antiguo 23/05/2005, 17:37
 
Fecha de Ingreso: enero-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.047
Antigüedad: 21 años, 3 meses
Puntos: 10
No entiendo muy bien que es lo que quieres hacer pero no creo que estes en el camino correcto.
El problema es que por ejemplo si tenes

<input type="text" name="cajaTexto[]" id="int[]">
<input type="text" name="cajaTexto[]" id="varchar[]">

cuando lo analices vas a tener:

cajaTexto[1] - int[1]
cajaTexto[2] - varchar[1]

entonces cuando recorras el primer arreglo se te va a complicar validar el segundo porque van a tener diferentes indices.

Yo buscaria otra forma de validar el tipo de dato. No conosco mucho, pero creo que hay una funcion llamada is_number() que te dice si el valor es un numero o no y otra isNaN() que devuelve true si NO es un numero (y si no esta vacia y no es un numero que es?)... y seguramente haya algo similar para cadenas de texto.

Saludos.
__________________
oohh... quisiera ser godines!!!
  #3 (permalink)  
Antiguo 23/05/2005, 18:20
 
Fecha de Ingreso: agosto-2004
Mensajes: 157
Antigüedad: 19 años, 8 meses
Puntos: 5
Hola Silvia y safe.

Si lo quieres es saber que tipo de datos se debe validar en un determinado campo, una de las posibles soluciones es poner un atributo no estándar.

Te envió un ejemplo.
Código:
<html>
<head>
<title></title>
<script language="JavaScript" type="text/javascript">
<!--


function check_form(current_form){

	for(var ctr = 0; cf = current_form[ctr];ctr++){
	      
			if(cf.getAttribute("datatype") == "int") {
			// sentencia para validar número
			alert("Validar números")
			}
			else if(cf.getAttribute("datatype") == "char"){
			// sentencia para validar texto
			 alert("Validar texto")
			}
	}

}

//-->
</script>

</head>
<body>
<form name="form1">
<input text="texto1" datatype="int">
<input text="texto2" datatype="char">
<input type="button" value="validar" onclick="check_form(this.form)">
</form>
</body>
</html>
Saludos
  #4 (permalink)  
Antiguo 23/05/2005, 18:40
 
Fecha de Ingreso: agosto-2004
Mensajes: 157
Antigüedad: 19 años, 8 meses
Puntos: 5
Vaya, no me he dado cuen y he mezclado el valor type y name

Lo envió de nuevo.

Código:
<html>
<head>
<title></title>
<script language="JavaScript" type="text/javascript">
<!--


function check_form(current_form){

	for(var ctr = 0; cf = current_form[ctr];ctr++){
	      
			if(cf.getAttribute("datatype") == "int") {
			// sentencia para validar número
			alert("Validar números")
			}
			else if(cf.getAttribute("datatype") == "char"){
			// sentencia para validar texto
			 alert("Validar texto")
			}
					
	}

}

//-->
</script>

</head>
<body>
<form name="form1">
<input type="text" name="texto1" datatype="int">
<input type="text" name="texto2" datatype="char">

<input type="button" value="validar" onclick="check_form(this.form)">
</form>
</body>
</html>
Saludos
  #5 (permalink)  
Antiguo 24/05/2005, 00:37
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola a todos:

Silvia: Es preferible no usar getElementsByName porque explorer no lo implementa bien (al menos en las versiones viejas, donde encontré ese defecto)

En explorer cuenta un array según su atributo id... curiosamente es un atributo que no debería repetirse...

Si quieres usar un array de elementos, el que funciona bien en los navegadores importantes es getElementsByTagName...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 24/05/2005, 08:34
 
Fecha de Ingreso: marzo-2003
Mensajes: 99
Antigüedad: 21 años, 2 meses
Puntos: 0
gracias

Muchas gracias a todos son muy amables de verdad tomare en cuenta toda su ayuda y le aviso como me fue, que tengan un buen dia
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 10:20.