Ocultar etiqueta SELECT

Alguien que me ayude, estoy trabajando con JSP y quisiera ocultar una etiqueta SELECT para posiblemente mostrarla más adelante, es decir, si se cumple una condición debo mostrar la lista de lo contrario, debe de permanecer oculta.

1 respuesta

Respuesta
1
Tendrías que utilizar la siguiente estructura en tu jsp
<% if (<condicion>) {%>
<select>
<option></option>
...
</select>
<% } %>
ALa verdad no te entendí. Pero dejame te explico. Estoy trabajando con un JSP y este llama a un JS y esta a un Action, etc, etc. Lo que pasa es que en mi JSP el cual utilizo unicamente para mostrar la información al cliente, existe un botón de nuevo, si este es apretado y el perfil del usuario es de tipo 3 entonces se debe de mostrar el Select de lo contrario debe de aparecer en un input type=Text el nombre del usuario.
Lo que no se realizar es que desde que carga el formulario aparezca oculto el Select y poderlo activar desde la JS.
De antemano te AGRADEZCO el apoyo.
Pues lo que se me ocurre que hagas es que el select lo metas en un
<div></div>
de la siguiente manera:
<div id="micapa" style="visibility:hidden">
    <select>
         ....
    </select>
</div>
<div id="micapa2" style="visibility:hidden">
     <input type="text" name="micampotexto">
</div>
con el atributo style="visibility:hidden" mantendrás el select oculto en un principio.
Una vez que aprietes el botón Nuevo tendrás que poner lo siguiente en tu código javascript, aunque no se como vas a evaluar la condición del tipo de perfil si por javascript o por jsp
Por javascript:
...
var capa1 = getDocumentById("micapa");
var capa2 = getDocumentById("micapa2");
if (perfilUsuario == 3) {
    capa1.visibility = "visible";
    capa2.visibility = "hidden";
} else {
    capa1.visibility = "hidden";
    capa2.visibility = "visible";
}
Si lo vas a evaluar en java dentro de la jsp en tu función javascript tendrás que ponerlo de la siguiente manera:
var capa1 = getDocumentById("micapa");
var capa2 = getDocumentById("micapa2");
<% if (perfilUsuario == 3) { %>
    capa1.visibility = "visible";
    capa2.visibility = "hidden";
<% } else { %>
    capa1.visibility = "hidden";
    capa2.visibility = "visible";
<% } %>
Otra cosa a tener en cuenta. La propiedad visibility hace que el elemento select ocupe hueco en tu html aunque no se vea. Si quieres evitar esto usa la propiedad display con los valores "none" y "block" en vez de "hidden" y "visible".
Puede que esto que te he dicho no esté perfecto del todo y todavía se podría pulir más, como por ejemplo si la condición la controlas con java dentro de la jsp simplemente pondrías:
<% if (perfilUsuario == 3){ %>
<div id="micapa" style="visibility:hidden">
        <select>
             ....
        </select>
    </div>
<% } else { %>
<div id="micapa" style="visibility:hidden">
        <input type="text" name="micampotexto">
    </div>
<% } %>
y en el javascript:
var capa = getDocumentById("micapa");
capa.visibility = "visible";
Bueno, ya me dirás si era esta la respuesta que necesitabas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas