Buenas quiero consultar un problema que tengo, espero que me ayuden y se trata de un list box que al hacer click abre otro listbox (submenu 1) y despues otro para desplegar la información , pero el dilema es que el sistema ahora lo esta ocupando una persona ciega y en este caso uso la barra espaciadora para que active cada listbox y asi despliegue la información pero al usar la barra espaciadora me abre el segundo listbox pero al apretar de nuevo en el listbox2 no me abre el tercero , no se si estoy pasando un parametro mal o falta alguno.
Ya dicho esto uso ajax para colocarlos y su contenido es asp.
aqui esta el codigo q estoy usando para usar la espaciadora es un poco largo espero que se entienda y si hay una mejor forma mejor ^^
Código javascript
:
Ver original//PRESION DE LA TECLA ESPACIADORA ----------------------------------------------------
netscape = "";
ver = navigator.appVersion; len = ver.length;
for(iln = 0; iln < len; iln++) if (ver.charAt(iln) == "(") break;
netscape = (ver.charAt(iln+1).toUpperCase() != "C");
function keyDown(DnEvents) { // handles keypress
k = (netscape) ? DnEvents.which : window.event.keyCode;
if (k == 32)
{ // enter key pressed
if (document.formulario.menu.value != "")
{
VerMenu();
return false;
}
else if (document.formulario.menu2.value != "")
{
VerMenu2(id);
return false;
}
else if (document.formulario.menu3.value != "")
{
PopUp();
return false;
}
else
{
alert("todo malo")
}
}
}
document.onkeydown = keyDown; // work together to analyze keystrokes
if (netscape) document.captureEvents(Event.KEYDOWN|Event.KEYUP);
Estos son los listbox
Código asp:
Ver original<table width="100%" class="TablaOscura">
<tr>
<td colspan="3" class="fondo_Oscuro"><img src="../../../Utilidades_intranet/Imagen/flecha_Rojo.gif" /> <span class="Sub_titulo">DATOS DE LA CONSULTA</span></td>
</tr>
<tr>
<td width="34%" align="center">
<select name="menu" size="10" class="caja" id="menu" style="width:100%;" onBlur="style.backgroundColor=''" onclick="javascript:VerMenu();">
<%sql = "exec VUMenu_consulta 0,0,0"
set rs = connBodegaSocial.Execute(sql)
if not rs.eof then
do while not rs.eof
Response.Write "<option value='"& ucase(trim(rs("id"))) &"'"
if trim(request("menu")) = ucase(trim(rs("id"))) Then Response.Write " selected"
Response.Write ">" & ucase(trim(rs("nombre"))) & "</option>"
rs.MoveNext
loop
else
response.Write("<OPTION value=''>NO EXISTEN DATOS</OPTION>")
end if
rs.Close
Set rs = Nothing%>
</select>
</td>
<td width="35%" align="center">
<div id="Menu2"><img src="../../../Utilidades_intranet/Imagen/icon/informacion.gif"><br>Seleccione una Opcion del Menu</div>
</td>
<td width="31%" align="center">
<div id="Menu3"><img src="../../../Utilidades_intranet/Imagen/icon/informacion.gif"><br>Seleccione una Opcion</div>
</td>
</tr>
</table>
Aqui sus respectivas funciones
Código javascript
:
Ver originalfunction VerMenu()
{
if (document.formulario.menu.value == "")
{
ajax('Menu2','InternoLista2.asp');
}
else
{
ajax('Menu2','InternoLista2.asp?ID='+document.formulario.menu.value);
}
}
function VerMenu2(id)
{
if (document.formulario.menu2.value == "")
{
ajax('Menu3','InternoLista3.asp');
}
else
{
ajax('Menu3','InternoLista3.asp?IID='+document.formulario.menu2.value+'&ID='+id);
}
}
function PopUp()
{
ajax('subMenu','InternoListadoSubMenu.asp?ID='+document.formulario.menu3.value);
}
Aqui los internolistado
Código asp:
Ver original//INTERNOLISTA2
<!--#include Virtual = "/includes/Netscape.inc"-->
<!--#include Virtual = "/includes/sinSesionPopUp.inc"-->
<!--#include Virtual = "/conexion/BodegaSocial.inc"-->
<%IF trim(request.QueryString("ID")) <> "" THEN%>
<select name="menu2" size="10" class="caja" id="menu2" onBlur="style.backgroundColor=''" style="width:100%;" onclick="javascript:VerMenu2(<%=trim(request.QueryString("ID"))%>);">
<%set rsMenu = connBodegaSocial.Execute("exec VUMenu_consulta 1,'"&trim(request.QueryString("ID"))&"',0")
if not rsMenu.eof then
do while not rsMenu.eof
IF trim(request.QueryString("OP")) = trim(rsMenu("IIID")) THEN
response.Write("<option value='"& trim(rsMenu("IIID")) &"' selected>"& trim(rsMenu("nombre")) &"</option>")
ELSE
response.Write("<option value='"& trim(rsMenu("IIID")) &"'>"& trim(rsMenu("nombre")) &"</option>")
END IF
rsMenu.MoveNext
loop
else
response.Write("<OPTION value=''>NO EXISTEN DATOS</OPTION>")
end if
rsMenu.Close
Set rsMenu = Nothing%>
</select>
<%ELSE%>
<select name="menu2" size="10" class="caja" id="menu2" onBlur="style.backgroundColor=''" style="width:100%;">
<option value="" selected>SELECCION</option>
</select>
<%END IF%>
//INTERNOLISTA3
<!--#include Virtual = "/includes/Netscape.inc"-->
<!--#include Virtual = "/includes/sinSesionPopUp.inc"-->
<!--#include Virtual = "/conexion/BodegaSocial.inc"-->
<%IF trim(request.QueryString("ID")) <> "" and trim(request.QueryString("IID")) <> "" THEN
set rsMenu = connBodegaSocial.Execute("exec VUMenu_consulta 3,'"&trim(request.QueryString("ID"))&"','"&trim(request.QueryString("IID"))&"'")
if not rsMenu.eof then%>
<select name="menu3" size="10" class="caja" id="menu3" onBlur="style.backgroundColor=''" style="width:100%;" onclick="javascript:PopUp();">
<%do while not rsMenu.eof
Response.Write "<option value='"& trim(rsMenu("codigo")) &"'"
if trim(request.QueryString("OP")) = trim(rsMenu("codigo")) Then Response.Write " selected"
Response.Write ">" & trim(rsMenu("nombre")) & "</option>"
rsMenu.MoveNext
loop%>
</select>
<%end if
rsMenu.Close
Set rsMenu = Nothing
else
response.Write("FALTAN DATOS")
END IF%>
y despues de pasar el internolista3 muestra el submenu con el contenido de ese departamento.
Gracias. ^^