Escondiendo objetos en Javascript

Tengo un select donde si escojo una opción, entonces me presenta unos objetos del form, y si selecciono otra opción entonces me muestra otros objetos del form.
Mi problema esta en que cuando se hace el onchange de una opción a otra, no se como desaparecer los objetos que previamente aparecí. ¿Cuál es la propiedad o la línea que debo colocar para desaparecer/esconder esos objetos nuevamente?
Aquí esta mi código:
<strong>Factura:     </strong>
<select name="factura" size="1" tabindex="7" onChange="print_periodo(this);">
<option>Factura?</option>
<option value="SI">SI</option>
<option value="NO">NO</option>
</select>
<!-- SI NO FACTURA -->
<select name="per_gracia" id="per_gracia" style="display:none;" onChange="selecc(this);">
<option>Gracia</option>
<option value="NO">NO</option>
<option value="SI">SI</option>
</select>
<!-- SI FACTURA -->
<select name="especial" id="especial" style="display:none;">
<option>Especial?</option>
<option value="NO">NO</option>
<option value="SI">SI</option>
</select>
<script language="javascript">
function print_periodo(obj){
if(obj.value == "NO"){
frm.per_gracia.style.display='';
}
if(obj.value == "SI"){
frm.especial.style.display='';
}
}
</script>

3 Respuestas

Respuesta
1
Debes esconder los objetos usando
if(obj.value == "NO"){
frm.per_gracia.style.display='none';
}
Respuesta
1
Creo que con esto lo solucionarás:
<script language="javascript">
function print_periodo(obj){
if(obj.value == "NO"){
frm.per_gracia.style.display='';
frm.especial.style.display='none';
}
if(obj.value == "SI"){
frm.especial.style.display='';
frm.per_gracia.style.display='none';
}
}
Bien, así me funciona super !
Pero con esta opción que me diste aunque se deshabilitaron los objetos, estos se quedan con el valor seleccionado, ¿cómo puedo hacer que al deshabilitarse quede con el valor inicial (que en este caso es cero) y no el valor que el usuario tomó antes de deshabilitarlo?
Muchas Gracias,
Ana Elisa Martínez
Creo que esto lo solucionará.
Además, si no seleccionas ninguna de las dos, las ocultará y seleccionará el valor inicial.
Ahí va:
function print_periodo(obj){
if(obj.value == "NO"){
frm.per_gracia.style.display='';
frm.especial.style.display='none';
frm.especial.options.selectedIndex=0;
}
else
if(obj.value == "SI"){
frm.especial.style.display='';
frm.per_gracia.style.display='none';
frm.per_gracia.options.selectedIndex=0;
}
else
{
frm.especial.style.display='none';
frm.per_gracia.style.display='none';
frm.per_gracia.options.selectedIndex=0;
frm.especial.options.selectedIndex=0;
}
}
Me ayudó bastante, pude solucionar mi asignación, ahora te enviaré otra pregunta para completar mi labor. :-)
Muchas gracias,
Ana Elisa
Respuesta
1
La propiedad es el:
style="display:none"
(Desaparece)
Si lo pones a:
style="display:block"
(Aparece)
Echa un ojo a la explicación de aquí:
http://www.programacion.com/html/foros/3/msg/219740/

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas