Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/06/2013, 10:19
Avatar de Raziel_Ravenheart
Raziel_Ravenheart
 
Fecha de Ingreso: agosto-2011
Ubicación: Ibagué, Tolima
Mensajes: 192
Antigüedad: 12 años, 8 meses
Puntos: 37
Información Respuesta: Muestre checkbox cuando se seleccione item

Primero una recomendación, no utilizar javascript intrusivo, o sea ese que se pone directamente en la etiqueta de apertura del elemento, aquí:

<select name='lista' id='lista' onchange='javascript:Carga_file()'>

Retirar el atributo "onchange='javascript:Carga_file()'", el resto está bien.

1. Detectar el evento load del objeto window
2. Agregar un escucha de eventos al select
3. Utilizar el objeto evento recibido por el escucha (listener) del select para mostrar el checkbox.

Código Javascript:
Ver original
  1. window.onload = function ()
  2. {
  3.     document.getElementById('lista').addEventListener( "change", carga_file, false);
  4.     /*
  5.         Por ahora solo enfoquémonos en los 2 primeros parámetros del método addEventListener
  6.         El primero es el evento que se quiere detectar
  7.         El segundo, la referencia a la función que se quiere ejecutar
  8.         Ojo: El nombre de la función va sin paréntesis, por que solo se está asignando.
  9.         Si se agregan los paréntesis, lo que hace es ejecutar la función apenas lee esa línea de código
  10.     */  
  11. }
  12.  
  13. function Carga_file (evt) // evt es una variable mágica que se recibe al apenas se ejecuta el evento, el navegador la "crea"
  14. {
  15.      var select = evt.target;
  16.      /*
  17.      evt.target, nos devuelve una referencia al elemento que activó el evento
  18.      en este caso el select lista, y es igual a hacer lo siguiente
  19.      var select = document.getElementById("lista");
  20.      */
  21.  
  22.     var ruta_file = select.value
  23.     // es lo mismo que: var ruta_file = document.getElementById("lista").value;
  24.    
  25.     var dir = "archivos/";
  26.  
  27.  
  28.     //Aquí van las variables que van a guardar las referencias a los otros elementos
  29.     var br = document.createElement('br');
  30.     var checkbox = document.createElement('input');
  31.     var  label = document.createElement('label')
  32.  
  33.     checkbox.type = "checkbox"
  34.     checkbox.value = ruta_file; //Supongo que este es el valor que se va a colocar al checkbox, pero puede ser cualquier otro
  35.  
  36.     label.innerHTML = "Descargar Archivo";
  37.  
  38.     /*
  39.     Ahora solo falta colocar el salto de línea, el checkbox y el label en la página, pero como no conozco en donde está posicionado el elemento
  40.     que los contiene, simplemente voy a tomar el elemento padre donde está el select, y los voy a añadir ahí;
  41.     */
  42.  
  43.     var contenedor = select.parentNode;
  44.      
  45.     parentNode.appendChild( br );
  46.     parentNode.appendChild( checkbox );
  47.     parentNode.appendChild( label );
  48.  
  49.     if(ruta_file == 0){
  50.         return 0;
  51.     }else{
  52.        window.open(dir + ruta_file);
  53.     }
  54. }


El resto del código y los demás arreglos van por tu cuenta.

Exitos!