Ver Mensaje Individual
  #10 (permalink)  
Antiguo 07/08/2010, 22:44
mayanmaster
 
Fecha de Ingreso: marzo-2008
Ubicación: Guatemala
Mensajes: 76
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Ocultar VARIOS elementos de un formulario

Justo ahora me topé con tu thread, hay varias formas de hacerlo pero no entiendo por qué no quieres usar el getelementbyid...

Puedes por ejemplo llamar y ocultar-modificar los elementos de tu formulario uno por uno accesándolos vía getelementbyid, es lo mejor pero para numerosos elementos hay otras formas como usar un array con los nombres de los elementos y un for... y ya.

La otra forma es colocando cada elemento o elementos que vas a modificar de mostrar-ocultar... insertándolos dentro de un SPAN ID. Así un solo SPAN ID (como si fuese un DIV) puede ser llamado y ocultado vía javascript, ya sea asignándole estilos css que tienen visible o invisible o por el método style.display="none" y style.display="".

Otra forma que puedes usar es asignándole un estilo CLASS a cada elemento de tu formulario y luego usar un getelementsbytagname lo cual se va a un array y luego le das un for asignándole otros estilos css ocultos o visibles o bien directamente con las propiedades style.display="none" y style.display="".

Lo he usado en mis formularios donde van agrupados, fácilmente metiéndolos en un span id... cuando son arbitrarios y van repartidos los que se van a ver y no, entonces o los pongo en span ids numerados (formv1, formv2) etc y me voy con un for o bien si de verdad son muchas las variantes les asigno los estilos css en el class y luego con el getbytagname se van de lo lindo asinándoles luego el style.display="none" etc.

Entiendo tu solución via server pero si son muchas las consultas a lo mejor te acelera bastante trabajar del lado del cliente. He comprimido bastante código de esta manera y usando ciclos.

Cita:
Pero no pasa nada al hacer onclick, la clase no cambia :S
Hazlo vía getelementsbytagname... y dependiendo del nombre de su clase ponles el style.display="none". Es un ciclo sencillo y te ahorras mucho trabajo.

Estoy un poco confundido con lo que pretendes en el ejemplo que mencionas no funciona... pero veamos, tienes varios elementos con esas clases asignadas... y aunque el código "está bien" estás intentando alterar todos con una línea, eso no se puede. Al hacerle un getelements estás almacenando todos en un array, entonces ahi debes aplicar un ciclo for para modificar cada elemento.

Si quieres alterarlos con una línea entonces no llames a los elementos, llama LA CLASE CSS y alérala. Esa sería una solución sencilla, asígnale la clases "VARIABLE" o por ejemplo "ELEMENTOCONDICIONAL", etc.... como quieras que se llame y ponle esa clase a los objetos.

Luego usa el script de http://www.shawnolson.net, llamado algo así como publicsmoscripts.js.

Se puede hacer a pie pero hay problemillas cross browser, este tío ya lo depuró y podés decirle changecss, NOMBRE, la propiedad y el nuevo valor y ya, te lo cambia todo con una línea.

Espero haberme explicado bien, ya hice lo que quieres con todos y cada uno de estos métodos en distintas oportunidades

Suerte.
Busca