Foros del Web » Programando para Internet » Javascript »

Ocultar o visualizar inputs según condición

Estas en el tema de Ocultar o visualizar inputs según condición en el foro de Javascript en Foros del Web. Hola a todos de nuevo, Me surge el siguiente problema, que me está sacando ya de mis casillas. A ver si me podéis iluminar. El ...
  #1 (permalink)  
Antiguo 05/10/2014, 10:13
 
Fecha de Ingreso: octubre-2010
Mensajes: 88
Antigüedad: 13 años, 6 meses
Puntos: 1
Ocultar o visualizar inputs según condición

Hola a todos de nuevo,

Me surge el siguiente problema, que me está sacando ya de mis casillas.
A ver si me podéis iluminar.

El tema es el siguiente:
Por defecto mi pag html tiene un input de tipo checkbox oculto.
Cuando se cargan todos los elementos de mi pag, tengo una función que me controla si debe o no mostrarlos.
La cuestión es que si lo trazo me aparecen los input visibles u ocultos cuando corresponde, sin embargo, si no lo trazo no me aparecen nunca

El código lo tengo implementado de la siguiente forma:

Código PHP:
$(document).ready(function(){
           
            $(
"a#modal").fancybox();
            
            var 
varigetVarsUrl();
            
enviaFechas(vari);
          
            
//Recuperamos usuario y empresa si lo recibe como parámetro
            
if (document.getElementById('usu').innterText== null){                
                     
                if ( 
vari.usu && vari.emp)
                {
                        
document.getElementById("usu").innerHTML "Bienvenido, " vari.usu;
                        
modEstado();
                };
                
            }; 
         })
        
        function 
modEstado(){            
            $(
'div.sidebar').toggle(); //Permitimos crear si estamos logeados                                                               
            
$('input#idSelec').css("display""inline");  //Permitimos eliminar sólo las relacionadas con el usuario logeado
                      
        

El código html de los input es:

Código HTML:
<input type='checkbox'  id='idSelec' name='checkElimina' title='Eliminar noticia' style='margin-right:10px; display:none'> 
La funcion modEstado es la que cambia el estado de esos inputs y solo es llamada si mi variable "vari" tiene valores.

A ver si me podéis decir donde estoy cometiendo el fallo.

Gracias
  #2 (permalink)  
Antiguo 05/10/2014, 11:13
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Ocultar o visualizar inputs según condición

Imagino que debes haber copiado mal el código, porque la propiedad no es 'innterText' sino innerText. Corrige eso.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 05/10/2014, 11:43
 
Fecha de Ingreso: octubre-2010
Mensajes: 88
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Ocultar o visualizar inputs según condición

Hola Alexis, gracias por tu tiempo.

Pues si que lo habia puesto mal.
Que raro, porque trazandolo no me petaba el código
Bueno, ahora ya lo he corregido, pero sigue sin funcionarme

Código PHP:
if (document.getElementById('usu').innerText== null){                
                     
                if ( 
vari.usu && vari.emp)
                {
                        
document.getElementById("usu").innerHTML "Bienvenido, " vari.usu;
                        
modEstado();
                };
                
            }; 
Alguna idea más?
  #4 (permalink)  
Antiguo 05/10/2014, 12:27
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Ocultar o visualizar inputs según condición

Solo por curiosidad, ¿ese elemento es una caja de texto? Si es así, trabaja directamente con la propiedad value.

Código Javascript:
Ver original
  1. //Forma 1
  2. if (document.getElementById('usu').value == "")
  3.  
  4. //Forma 2
  5. if (!document.getElementById('usu').value.length)

Ahora que si ni así funciona, verifica los valores de los atributos de vari para ver si estás obteniendo los valores esperados.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 05/10/2014, 15:11
 
Fecha de Ingreso: octubre-2010
Mensajes: 88
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Ocultar o visualizar inputs según condición

Alexis ese elemento en concreto es un encabezado, un h4.
He probado con el código que me comentas pero no ha habido suerte.
Como trazando el código si que me funciona he puesto varios alerts, en diferentes puntos del código
Código HTML:
$(document).ready(function(){
           
            $("a#modal").fancybox();
            $("a#modalEl").fancybox();
            
            var vari= getVarsUrl();
            alert ("la variable vari vale" + vari.usu + vari.emp);
            enviaFechas(vari);
            alert ("la variable vari vale" + vari.usu + vari.emp);
            //Recuperamos usuario y empresa si lo recibe como parámetro
			if (document.getElementById('usu').textContent==""){                
				alert ("Estamos dentro del usu porque no tiene contenido") ;    
                if ( vari.usu && vari.emp)
                {
                        alert ("Estamos dentro del usu y de las variables para visualizar checks") ;
				        document.getElementById("usu").innerHTML = "Bienvenido, " + vari.usu;
                        modEstado();
                };
                
			}; 
		 })
Y me ha funcionado.
He ido suprimiendo los alerts hasta dejar únicamente el que está dentro del if ( vari.usu && vari.emp)... y también me ha funcionado.
Sin embargo, si lo comento ya no me funciona
¿por que?

Etiquetas: condición, funcion, html, input, inputs, según, valor
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:53.