Foros del Web » Programando para Internet » Javascript »

Evento Submit.click();

Estas en el tema de Evento Submit.click(); en el foro de Javascript en Foros del Web. Hola, tengo un botón "hidden", que al que quiero hacer click en un determinado momento. El código que pondré me funciona en google chrome, pero ...
  #1 (permalink)  
Antiguo 24/09/2012, 04:46
 
Fecha de Ingreso: enero-2012
Ubicación: En españa dije...
Mensajes: 28
Antigüedad: 12 años, 3 meses
Puntos: 1
Evento Submit.click();

Hola, tengo un botón "hidden", que al que quiero hacer click en un determinado momento.

El código que pondré me funciona en google chrome, pero no en firefox o internet explorer. A ver si ustedes saben que está mal.

Código PHP:
Ver original
  1. <?php
  2.             echo '<form action="upload.php" method="post" enctype="multipart/form-data"
  3.                 name="uploadImage" id="uploadImage">
  4.                 <p>
  5.                     <input type="hidden" name="MAX_FILE_SIZE"
  6.                     value="<?php echo MAX_FILE_SIZE; ?>" />
  7.                     <input type="file" name="image" id="image" onchange="document.uploadImage.upload.click()" />
  8.                 </p>
  9.                 <p>
  10.                     <input type="submit" name="upload" id="upload" value="Upload" style="visibility:hidden" />
  11.                 </p>
  12.             </form>';
  13.         ?>

He puesto que cuando se cargue la imagen, se pulse el botón para enviar los datos, pero solo funciona con Google Chrome.

Gracias de antemano.
  #2 (permalink)  
Antiguo 24/09/2012, 05:47
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Evento Submit.click();

prueba a usar submit en lugar de click
Cita:
<input type="file" name="image" id="image" onchange="this.form.submit()" />
de este modo te evitas el botón submit

por otro lado te convendría validar el tipo de archivo, peso, etc antes de subirlo. aunque puede que lo estés haciendo en el servidor
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #3 (permalink)  
Antiguo 24/09/2012, 11:51
 
Fecha de Ingreso: enero-2012
Ubicación: En españa dije...
Mensajes: 28
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: Evento Submit.click();

Efectivamente esa era mi primera opción.

Veamos, a ver si puedo explicar lo que me ocurre. En un principio tenía el tipo file y el botón visibles, ya que es la primera vez que utilizo el type file. Lo validé con todo en un archivo php aparte y funcionaba correctamente en todos los navegadores.

Por motivos de diseño, me dijeron que tenía que quitar el botón, para que se viese mejor, así que lo quité y utilicé esa función que me comentas, para evitarme tener el botón. Pero por alguna razón que desconozco, ya no subía las imágenes, simplemente entraba en el archivo.php de validación pero no hacia nada, se quedaba la página en blanco.

Probé a poner varios "echo" en todas las condiciones que tenía y al principio de mi código para probar por donde estaba ejecutando, pero no mostraba nada. Así que se me ocurrió hacer el botón invisible y clickearlo en el evento onChange del input file.

He leído que hay otra forma mejor de subir archivos al servidor sin necesidad del input file, pero no he encontrado exactamente a lo que se referían.
  #4 (permalink)  
Antiguo 24/09/2012, 13:59
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Evento Submit.click();

empezando por el final, no sé nada de eso

siguiendo con el tema, el uso de submit no incapacita la subida del archivo siempre y cuando javascript esté activado. para evitar la dependencia a javascript, usa la etiqueta <noscript>
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}

Etiquetas: evento, funcion, input, php
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:21.