Foros del Web » Programando para Internet » Javascript »

Problema con uso de asignar funcion a teclas

Estas en el tema de Problema con uso de asignar funcion a teclas en el foro de Javascript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 27/10/2008, 09:33
 
Fecha de Ingreso: octubre-2008
Mensajes: 51
Antigüedad: 15 años, 6 meses
Puntos: 0
Sonrisa Problema con uso de asignar funcion a teclas

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
  1. //PRESION DE LA TECLA ESPACIADORA ----------------------------------------------------
  2. netscape = "";
  3. ver = navigator.appVersion; len = ver.length;
  4. for(iln = 0; iln < len; iln++) if (ver.charAt(iln) == "(") break;
  5. netscape = (ver.charAt(iln+1).toUpperCase() != "C");
  6. function keyDown(DnEvents) { // handles keypress
  7. k = (netscape) ? DnEvents.which : window.event.keyCode;
  8. if (k == 32)
  9.     { // enter key pressed
  10.         if (document.formulario.menu.value != "")
  11.         {
  12.         VerMenu();
  13.         return false;
  14.         }
  15.             else if (document.formulario.menu2.value != "")
  16.             {
  17.             VerMenu2(id);
  18.             return false;
  19.             }
  20.                 else if (document.formulario.menu3.value != "")
  21.                 {
  22.                 PopUp();
  23.                 return false;
  24.                 }
  25.                     else
  26.                     {
  27.                     alert("todo malo")
  28.                     }
  29.     }
  30. }
  31. document.onkeydown = keyDown; // work together to analyze keystrokes
  32. if (netscape) document.captureEvents(Event.KEYDOWN|Event.KEYUP);


Estos son los listbox

Código asp:
Ver original
  1. <table width="100%" class="TablaOscura">
  2.         <tr>
  3.         <td colspan="3" class="fondo_Oscuro"><img src="../../../Utilidades_intranet/Imagen/flecha_Rojo.gif" /> <span class="Sub_titulo">DATOS DE  LA CONSULTA</span></td>
  4.         </tr>
  5.         <tr>
  6.         <td width="34%" align="center">
  7. <select name="menu" size="10" class="caja" id="menu" style="width:100%;" onBlur="style.backgroundColor=''" onclick="javascript:VerMenu();">
  8. <%sql = "exec  VUMenu_consulta 0,0,0"
  9. set rs = connBodegaSocial.Execute(sql)
  10. if not rs.eof then
  11. do while not rs.eof
  12.         Response.Write "<option value='"& ucase(trim(rs("id"))) &"'"
  13.         if trim(request("menu")) =  ucase(trim(rs("id"))) Then Response.Write " selected"
  14.         Response.Write ">" & ucase(trim(rs("nombre"))) & "</option>"
  15. rs.MoveNext
  16. loop
  17. else
  18.     response.Write("<OPTION value=''>NO EXISTEN DATOS</OPTION>")
  19. end if
  20. rs.Close
  21. Set rs = Nothing%>
  22. </select>
  23.         </td>
  24.         <td width="35%" align="center">
  25. <div id="Menu2"><img src="../../../Utilidades_intranet/Imagen/icon/informacion.gif"><br>Seleccione una Opcion del Menu</div>
  26.          </td>
  27.         <td width="31%" align="center">
  28. <div id="Menu3"><img src="../../../Utilidades_intranet/Imagen/icon/informacion.gif"><br>Seleccione una Opcion</div>
  29.         </td>
  30.         </tr>
  31.         </table>

Aqui sus respectivas funciones

Código javascript:
Ver original
  1. function VerMenu()
  2. {
  3.     if (document.formulario.menu.value == "")
  4.     {
  5.         ajax('Menu2','InternoLista2.asp');
  6.     }
  7.     else
  8.     {
  9.         ajax('Menu2','InternoLista2.asp?ID='+document.formulario.menu.value);
  10.     }
  11. }
  12. function VerMenu2(id)
  13. {
  14.     if (document.formulario.menu2.value == "")
  15.     {
  16.         ajax('Menu3','InternoLista3.asp');
  17.     }
  18.     else
  19.     {
  20.         ajax('Menu3','InternoLista3.asp?IID='+document.formulario.menu2.value+'&ID='+id);
  21.     }
  22. }
  23. function PopUp()
  24. {
  25.     ajax('subMenu','InternoListadoSubMenu.asp?ID='+document.formulario.menu3.value);
  26. }


Aqui los internolistado

Código asp:
Ver original
  1. //INTERNOLISTA2
  2. <!--#include Virtual = "/includes/Netscape.inc"-->
  3. <!--#include Virtual = "/includes/sinSesionPopUp.inc"-->
  4. <!--#include Virtual = "/conexion/BodegaSocial.inc"-->
  5.  
  6. <%IF trim(request.QueryString("ID")) <> "" THEN%>
  7.     <select name="menu2" size="10" class="caja" id="menu2" onBlur="style.backgroundColor=''" style="width:100%;" onclick="javascript:VerMenu2(<%=trim(request.QueryString("ID"))%>);">
  8.     <%set rsMenu = connBodegaSocial.Execute("exec VUMenu_consulta 1,'"&trim(request.QueryString("ID"))&"',0")
  9.     if not rsMenu.eof then
  10.     do while not rsMenu.eof
  11.         IF trim(request.QueryString("OP")) = trim(rsMenu("IIID")) THEN
  12.             response.Write("<option value='"& trim(rsMenu("IIID")) &"' selected>"& trim(rsMenu("nombre")) &"</option>")
  13.         ELSE
  14.             response.Write("<option value='"& trim(rsMenu("IIID")) &"'>"& trim(rsMenu("nombre")) &"</option>")
  15.         END IF
  16.     rsMenu.MoveNext
  17.     loop
  18.     else
  19.         response.Write("<OPTION value=''>NO EXISTEN DATOS</OPTION>")
  20.     end if
  21.     rsMenu.Close
  22.     Set rsMenu = Nothing%>
  23.     </select>
  24. <%ELSE%>
  25.     <select name="menu2" size="10" class="caja" id="menu2" onBlur="style.backgroundColor=''" style="width:100%;">
  26.     <option value="" selected>SELECCION</option>
  27.     </select>
  28. <%END IF%>
  29.  
  30.  
  31.  
  32.  
  33.  
  34. //INTERNOLISTA3
  35. <!--#include Virtual = "/includes/Netscape.inc"-->
  36. <!--#include Virtual = "/includes/sinSesionPopUp.inc"-->
  37. <!--#include Virtual = "/conexion/BodegaSocial.inc"-->
  38.  
  39. <%IF trim(request.QueryString("ID")) <> "" and trim(request.QueryString("IID")) <> "" THEN
  40.     set rsMenu = connBodegaSocial.Execute("exec VUMenu_consulta 3,'"&trim(request.QueryString("ID"))&"','"&trim(request.QueryString("IID"))&"'")
  41.     if not rsMenu.eof then%>
  42.     <select name="menu3" size="10" class="caja" id="menu3" onBlur="style.backgroundColor=''" style="width:100%;" onclick="javascript:PopUp();">
  43.     <%do while not rsMenu.eof
  44.         Response.Write "<option value='"& trim(rsMenu("codigo")) &"'"
  45.         if trim(request.QueryString("OP")) = trim(rsMenu("codigo")) Then Response.Write " selected"
  46.         Response.Write ">" & trim(rsMenu("nombre")) & "</option>"
  47.     rsMenu.MoveNext
  48.     loop%>
  49.     </select>
  50. <%end if
  51. rsMenu.Close
  52. Set rsMenu = Nothing
  53. else
  54.     response.Write("FALTAN DATOS")
  55. END IF%>

y despues de pasar el internolista3 muestra el submenu con el contenido de ese departamento.

Gracias. ^^

Última edición por calinzt; 27/10/2008 a las 10:24
  #2 (permalink)  
Antiguo 27/10/2008, 10:47
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 2 meses
Puntos: 535
Respuesta: Problema con uso de asignar funcion a teclas

Movido desde ASP... aunque no estoy del todo seguro que sea el foro javascript el indicado...
__________________
...___...
  #3 (permalink)  
Antiguo 27/10/2008, 11:48
 
Fecha de Ingreso: octubre-2008
Mensajes: 51
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Problema con uso de asignar funcion a teclas

en realidad tiene todo de un poco
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 14:06.