Foros del Web » Creando para Internet » HTML »

Formulario que al presionar enter, recarga la página (en IE6, en Firefox1.5 va bien)

Estas en el tema de Formulario que al presionar enter, recarga la página (en IE6, en Firefox1.5 va bien) en el foro de HTML en Foros del Web. Hola a todos. Al apretar "enter", en un formulario, hace el efecto como si el puntero estuviese en la barra de direcciones, es decir, recarga ...
  #1 (permalink)  
Antiguo 27/12/2005, 15:48
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Formulario que al presionar enter, recarga la página (en IE6, en Firefox1.5 va bien)

Hola a todos.

Al apretar "enter", en un formulario, hace el efecto como si el puntero estuviese en la barra de direcciones, es decir, recarga la página, en vez de seguir el action del formulario.
Es un formulario de lo mas simple del mundo, y no sé por qué pasa esto.

Código HTML:
<form method="post" action="http://www.pagina.com/algo">
<input type="text" size="18" name="cadena" value="valorQueVieneDeEsteMismoFormulario"> <input type="submit" name="busca" value="buscar">
</form> 
En la hoja de estilo, ya que no sé de donde viene este "fallo", tengo esto:
Código HTML:
form {
 display: inline;
}
  #2 (permalink)  
Antiguo 27/12/2005, 17:39
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 20 años, 11 meses
Puntos: 2
en lugar de poner la url completa pusiste el nombre del archivo? (algo/index.html)...
__________________
I Love Programming...
  #3 (permalink)  
Antiguo 27/12/2005, 21:40
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Sí, la URL completa he puesto.
  #4 (permalink)  
Antiguo 30/12/2005, 18:05
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Perdonen que lo suba de nuevo, pero sigue pasándome esto, y no consigo solucionarlo, es muy raro...
  #5 (permalink)  
Antiguo 31/12/2005, 05:26
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 7 meses
Puntos: 381
Bonez, no veo nada raro en el código ¿puedes colgar el ejemplo en algún sitio para probarlo en marcha?
  #6 (permalink)  
Antiguo 31/12/2005, 08:21
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Tunait, lo tengo colgado en lanzaroteportal.com/lanzaroteportal/ayuda, ocurre en el único formulario que hay. En IE6 ocurre eso qu ehe dicho, en FF1.5 va como debe...
  #7 (permalink)  
Antiguo 31/12/2005, 08:31
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 7 meses
Puntos: 381
Es curioso por que, de hecho, el formulario es enviado también con IE. Si tras darle al enter pruebas a actualizar te sale el clásico aviso de que la página no puede actualizarse sin reenviar la información. Osea, que sí que realiza el submit pero por alguna razón parece que no le llega el dato.

Por qué no pruebas a agregarle el nombre archivo a la acción de tu form? osea, agrégale index.php. Prueba y dime si entonces te funciona ok
  #8 (permalink)  
Antiguo 31/12/2005, 08:39
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Tunait, he hecho lo que me has dicho, ponerle en el action la página directamente (http://www.lanzaroteportal.com/inclu...rtal/ayuda.php), pero sigue pasando lo mismo.

Me parece totalmente ilógico, porque es un formulario de lo mas simple, no usa nada raro, no sé...
  #9 (permalink)  
Antiguo 31/12/2005, 08:47
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 7 meses
Puntos: 381
Uff qué cosa más marciana. El caso es que dándole al submit sí le llega el dato

Si se me ocurre algo más te aviso
  #10 (permalink)  
Antiguo 31/12/2005, 09:02
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 7 meses
Puntos: 381
Veo que si al botón se le quita el name también deja de funcionar correctamente al darle al submit.

Todo lo más que se me ocurre es que tal vez haga crash por la parte servidor. ¿Se hace algo en la parte php con el name del submit?
  #11 (permalink)  
Antiguo 31/12/2005, 09:04
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Acabo de probar poner en el action una ruta relativa, action="/includes/lanzarote-portal/ayuda.php", y ahora ocurre algo mas raro aún... En el formulario, value="", le llega la variable que se envió por el form, pero no busca el buscador...
Supongo que será algo de la programación del servidor, no de HTML. Aunque tampoco, porque si funciona en Firefox, debería de hacerlo en IE, y en cualquier otro.
  #12 (permalink)  
Antiguo 31/12/2005, 09:05
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
En el servidor, lo único que se hace con el name del submit, es ver que existe (uséase, value=name) y así realizar la búsqueda. Pero como ya digo, es raro que funcione en un navegador y en otro no.
  #13 (permalink)  
Antiguo 31/12/2005, 09:08
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 7 meses
Puntos: 381
¿y por qué no verificas simplemente que la variable cadena no llegue vacía?

Si quieres déjame ver la php a ver si vislumbro algo por ese lado
  #14 (permalink)  
Antiguo 31/12/2005, 09:14
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
No llega vacía la variable cadena, porque después de "usar" el formulario, en value aparece la variable de nuevo.

El código PHP sería este:
Código PHP:
<?
if($_POST['busca']=="buscar") {
... }
?>
Después tiene un elseif por si se ha seleccionado alguna pregunta, y un else si no se ha hecho nada para mostrar las preguntas mas leidas.
Si te hace falta el código entero dímelo y lo pongo, que pienso que lo importante es eso para que muestre o no la búsqueda.

Y de todas formas, si hubiera algo raro en el PHP, entonces, tampoco debería de funcionar en firefox, que si lo hace.
  #15 (permalink)  
Antiguo 31/12/2005, 09:20
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Tunait, efectivamente, el value del submit no le llega en IE si se apreta enter, sí llega si se presiona el botón.

Comprobé que, algo lógico también, que al pulsar enter teniendo el tabulado encima del botón, si le llega bien la variable.

Supongo que esto quiere decir, que en este formulario, si no se aprieta el botón, este es inexistente, ¿no?

Última edición por pzin; 31/12/2005 a las 09:24 Razón: Comprobé eso también...
  #16 (permalink)  
Antiguo 31/12/2005, 09:34
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 7 meses
Puntos: 381
Qué cosa, nunca me había fijado en eso de que explorer no envía el campo del submit si no se presiona. En realidad a mi nunca me interesa que ese campo se envíe así que nunca le asigno un name.

Pues lo único que se me ocurre es que le agregues un campo oculto con el valor que quieres enviar

prueba así

<form name="pepe" method="post" action="bonez.php">
<input type="text" size="18" name="cadena" value=""> <input type="submit" name="busca" value="buscar">
<input type="hidden" name="busca" value="buscar">
</form>

de hecho puedes omitir el name en el submit
  #17 (permalink)  
Antiguo 31/12/2005, 09:36
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 7 meses
Puntos: 381
Cita:
Iniciado por BoNeZ
Comprobé que, algo lógico también, que al pulsar enter teniendo el tabulado encima del botón, si le llega bien la variable.
Claro, el darle al enter cuando está sobre un elemento clicable (un link o un botón) es el equivalente a darle click con el ratón

Cita:
Supongo que esto quiere decir, que en este formulario, si no se aprieta el botón, este es inexistente, ¿no?
Pues parece que para explorer así es
  #18 (permalink)  
Antiguo 31/12/2005, 09:41
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Y, ¿por qué? Es un botón de lo mas simple, incluso pelea con el hola mundo en simplicidad; <input type="submit" name="busca" value="buscar">

Puedo hacer que detecte si se ha enviado algo usando el value de la casilla del texto, pero aún así, es curioso que pase esto.
  #19 (permalink)  
Antiguo 31/12/2005, 09:51
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 7 meses
Puntos: 381
Realmente es, cuanto menos, curioso. No he leído nada al respecto por ahí y desconozco si el comportamiento de explorer es normal o si es un bug.

Igual yá te digo que te cubres las espaldas usando un campo de tipo hidden con el mismo name y valor que el botón de submit. A tu php le llegarán igual los mismos valores que necesitas de forma segura en cualquier navegador (por si otros navegadores tuvieran el mismo comportamiento)
  #20 (permalink)  
Antiguo 31/12/2005, 10:05
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Lo que he hecho es lo que dije antes, comprobar con isSet el campo cadena. Lo del campo hidden, no lo había pensado.

Y por supuesto darte las gracias Tunait, o las muchas gracias.

Un saludo.
  #21 (permalink)  
Antiguo 31/12/2005, 10:18
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 7 meses
Puntos: 381
De nada o muchas de nadas también yo he aprendido algo con esto.

Me alegra que hayas sacado algo en claro al final.

Un saludo y que pases una buena Noche Vieja
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 12:02.