Foros del Web » Programando para Internet » Javascript »

recorrer formulario y trabajar con selects

Estas en el tema de recorrer formulario y trabajar con selects en el foro de Javascript en Foros del Web. Hola a todos! Tengo que crear un array con los id de los selects de mi formulario y quiero crearlo dinamicamente. mi codigo no funciona: ...
  #1 (permalink)  
Antiguo 23/02/2009, 13:41
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 10 meses
Puntos: 35
recorrer formulario y trabajar con selects

Hola a todos!
Tengo que crear un array con los id de los selects de mi formulario y
quiero crearlo dinamicamente.
mi codigo no funciona:
for(a=0; a<=document.form1.elements.length; a++){
if(document.form1.elements[a].type=="select-one"){
}
}
IE me advirte
'document.form1.elements[...]type' es nulo o no es un objeto

la verdad soy de php pero javascript me ayuda mucho. gracias!!
  #2 (permalink)  
Antiguo 23/02/2009, 14:10
Avatar de jseros  
Fecha de Ingreso: agosto-2008
Ubicación: Bogotá
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 18
Respuesta: recorrer formulario y trabajar con selects

Yo te recomiendo que accedas al fomulario mediante el método estándar document.getElementById:


En vez de


Y siempre utilizar el atributo ID. En eso puede radicar el problema.

Exitos.
  #3 (permalink)  
Antiguo 23/02/2009, 14:21
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 10 meses
Puntos: 35
Respuesta: recorrer formulario y trabajar con selects

Si pero necesitaba crearlo dinamicamente sin conocer el id que usan en el formulario.Gracias igual.
Como podria crear el array dinamicamente?
  #4 (permalink)  
Antiguo 23/02/2009, 15:02
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: recorrer formulario y trabajar con selects

Hola

Aqui te dejo una funcion JS. que guardas los id de los select en un array, debes claro definir el id en los select, es la unica forma

JAVASCRIPT

Código:
function getSelectIDs(form)
{
	oForm = window.document.forms[form];
	formLen 	 = oForm.elements.length
	arraySelect = [];
	for (i=0; i<formLen; i++)
	{
		switch (oForm.elements[i].type)
		{
			case 'select-one':
					arraySelect.push(oForm.elements[i].id);
			break;
			
		}
	}
//alert(arraySelect.length);
	for (var ii=0; ii<arraySelect.length; ii++){
		alert('ID : ' +arraySelect[ii]);
	}
}
HTML -> EJEMPLO

Código:
Obtiene los id's de los select (ComboBox):<br>
<select id="select1" name="s1" size="1">
	<option value="PHP" selected="selected">PHP</option>
    <option value="ASP">ASP</option>
    <option value="VB6">VB6</option>
    <option value="JAVASCRIPT">JAVASCRIPT</option> 
    <option value="C">C</option>           
</select>
<BR />
<select id="select2" name="s2" size="1">
	<option value="LINUX" selected="selected">LINUX</option>
    <option value="WINDOWS">WINDOWS</option>
    <option value="SOLARIS">SOLARIS</option>
    <option value="UNIX">UNIX</option> 
</select>
<br />
<INPUT type = "button" value = "getIDs" name="GET IDS" onclick="javascript:getSelectIDs(this.form.name);" >
Espero te sirva.
  #5 (permalink)  
Antiguo 23/02/2009, 15: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
Respuesta: recorrer formulario y trabajar con selects

Hola:

Los nodos que no son controles del formulario no tienen atributo type, pero todos los nodos tienen el nodeType... y algunos otros... y también se puede hacer un bucle asociativo... pero con algo de tu código supongo que se puede arreglar el asunto:

for(a=0; a<=document.form1.elements.length; a++)
with(document.form1.elements[a]) if (nodeType == 1 && type == "select-one"){
}

Pruébalo y cuéntanos...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 24/02/2009, 11:53
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 10 meses
Puntos: 35
Respuesta: recorrer formulario y trabajar con selects

yupi!!!!!!
me funcionó!!!
Usé el codigo de Fenris y funciona de maravilla ya que lo necesitaba para ajax y cargar velozmente mis 5 selects instantaneamente pensar que antes tenia que cargarlos refrescando la pagina con php.
Igual para futuro voy a investigar sobre nodetype.
Gracias chicos!!!:apla uso:
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 12:27.