Foros del Web » Programando para Internet » Javascript »

ayuda borrando <options> en <selects> en formulario

Estas en el tema de ayuda borrando <options> en <selects> en formulario en el foro de Javascript en Foros del Web. Hola gente ¡¡ ,despúes de muchos quebraderos de cabeza con js sigo teniendo problemas. Ya he conseguido gracias a la ayuda de gente de estos ...
  #1 (permalink)  
Antiguo 21/08/2008, 11:37
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 22 años
Puntos: 8
ayuda borrando <options> en <selects> en formulario

Hola gente ¡¡ ,despúes de muchos quebraderos de cabeza con js sigo teniendo problemas.
Ya he conseguido gracias a la ayuda de gente de estos foros a construir un formulario añadiendo con javascript nuevas options en un select según lo que escojía de otro select. El problema que tengo ahora es como hago para que cada vez que escojo una nueva opción de el select se borre las options que tenía. Pego el código haber si queda más claro

Código:
function habilitar2(form) {


    if (form.cas[0].selected == true)

    {

    form.cities.disabled = true;

    }

    else

    {
		
			city=document.forms['form1'].elements['cities'];
			
		    if (form.cas[1].selected == true)
			{
				
				var1=new Option("Coruña","Coruña");
				var2=new Option("Lugo","Lugo");
				var3=new Option("Ourense","Ourense");
				var4=new Option("Pontevedra","Pontevedra");
				var5=new Option("Vigo","Vigo");
				var6=new Option("Santiago","Santiago");

				city.options[0]=var1;
				city.options[1]=var2;
				city.options[2]=var3;
				city.options[3]=var4;
				city.options[4]=var5;
				city.options[5]=var6;

				
			}
			  if (form.cas[2].selected == true)
			{
					
				var1=new Option("Aviles","Aviles");
				var2=new Option("Gijón","LGijón");
				var3=new Option("Oviedo","Oviedo");
			
				
				city.options[0]=var1;
				city.options[1]=var2;
				city.options[2]=var3;
			
				
			}
				  if (form.cas[3].selected == true)
			{
					
				var1=new Option("Buros","Buros");
				var2=new Option("León","Palencia");
				var3=new Option("Salamanca","Salamanca");
				var4=new Option("Soria","Soria");
				var5=new Option("Valladolid","Valladolid");
				var6=new Option("Salamanca","Salamanca");
				var7=new Option("Zamora","Zamora");
				var8=new Option("Ávlila ","Ávlila");
				
				city.options[0]=var1;
				city.options[1]=var2;
				city.options[2]=var3;
				city.options[3]=var4;
				city.options[4]=var5;
				city.options[5]=var6;
				city.options[6]=var7;
				city.options[7]=var8;
				
			
				
			}


    }

}
Si escojo por ejemplo Galicia salen las provincias gallegas , pero si luego cambio a Andalucia se forma un lio padre . ¿Como puedo resetear los valores anteriores?,

Gracias a tod@s
  #2 (permalink)  
Antiguo 21/08/2008, 11:47
Avatar de Fernand0  
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 18 años, 8 meses
Puntos: 19
Respuesta: ayuda borrando <options> en <selects> en formulario

http://www.forosdelweb.com/f13/faqs-...25/#post259655
  #3 (permalink)  
Antiguo 21/08/2008, 11:48
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 1 mes
Puntos: 839
De acuerdo Respuesta: ayuda borrando <options> en <selects> en formulario

Aquí tienes un ejemplo:
Código PHP:
function deleteall(voptions) {
vcount voptions.length;
for(
i=0vcounti++) {
     
voptions[0] = null; }

Solo necesitas llamarlo cada vez que vas a cargar el select. La llamada sería en tu caso así:
Código PHP:
deleteall(city.options); 
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #4 (permalink)  
Antiguo 21/08/2008, 12:01
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 22 años
Puntos: 8
Respuesta: ayuda borrando <options> en <selects> en formulario

Cita:
Iniciado por David el Grande Ver Mensaje
Aquí tienes un ejemplo:
Código PHP:
function deleteall(voptions) {
vcount voptions.length;
for(
i=0vcounti++) {
     
voptions[0] = null; }

Solo necesitas llamarlo cada vez que vas a cargar el select. La llamada sería en tu caso así:
Código PHP:
deleteall(city.options); 
Nuevamente gracias , voy a probarlo . Por cierto

Lo que no acabo de entener es porque esto es asi: (de hecho así como tú dices me funciona pero no lo comprendo)
for(i=0; i < vcount; i++) {
voptions[0] = null; }
}
En vez de como yo pensaba asi:
for(i=0; i < vcount; i++) {
voptions[i] = null; }
}
¿No se supone que tiene que recorrer el array entero para borrar todos sus registros?.
Un saludo y gracias

Última edición por Dundee; 21/08/2008 a las 12:11
  #5 (permalink)  
Antiguo 21/08/2008, 12:07
Avatar de colote  
Fecha de Ingreso: julio-2008
Ubicación: Rosario - Santa Fe - Argentina
Mensajes: 729
Antigüedad: 15 años, 10 meses
Puntos: 8
Respuesta: ayuda borrando <options> en <selects> en formulario

Cita:
Iniciado por Dundee Ver Mensaje
Nuevamente gracias , voy a probarlo . Por cierto
¿sabéis alguno de un buen libro de js o guía rápida? , manejo PHP desde hace tiempo por eso no quiero lo típico que te explican que es una variable sino algo que vaya más a las expecificaciones de js y al trabajo con objetos.
Hola Dundee !!!
Muchos recomiendan http://librosweb.es/javascript/,

Saludos !!!
__________________
Mail: [email protected]
  #6 (permalink)  
Antiguo 21/08/2008, 12:14
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 1 mes
Puntos: 839
Exclamación Respuesta: ayuda borrando <options> en <selects> en formulario

Eso tiene que ser así porque mientras vamos eliminando los índices disminuyen. Por ejemplo:
Código PHP:
for(i=0vcounti++) {
     
voptions[i] = null; }

La primera vez que pasamos por el bucle eliminamos el item 0, con lo que el total de índices se reduce a 4, así que en la última pasada por el bucle ya no encontrará el índice 4 como habría de esperarse ya que solo va a existir el índice 0. Espero no haberte confundido .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 22/08/2008, 00:35
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 22 años
Puntos: 8
Respuesta: ayuda borrando <options> en <selects> en formulario

Cita:
Iniciado por David el Grande Ver Mensaje
Eso tiene que ser así porque mientras vamos eliminando los índices disminuyen. Por ejemplo:
Código PHP:
for(i=0vcounti++) {
     
voptions[i] = null; }

La primera vez que pasamos por el bucle eliminamos el item 0, con lo que el total de índices se reduce a 4, así que en la última pasada por el bucle ya no encontrará el índice 4 como habría de esperarse ya que solo va a existir el índice 0. Espero no haberte confundido .
Ok lo pillo , curioso array este que disminuyen sus posiciones a medida que vas eliminando elementos. Siempre que he trabajado con un array que tenga X elementos por mucho que elimine el array[0] siguen existiendo el resto de sus posiciones sin alterarse (al no ser que use uno función para ello); es decir por lo que yo entiendo según tu primer ejemplo , al eliminar en la primera pasada el array[0] , el que antes era array[1] pasa ahora a ser array[0].
Bueno me a quedado claro pero la verdad que me sorprende esta forma de transformación de los arrays.

Saludos y gracias
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 13:58.