Foros del Web » Programando para Internet » Javascript »

Problema ENTER y formulario

Estas en el tema de Problema ENTER y formulario en el foro de Javascript en Foros del Web. Lo primero de todo, no se exactamente si poner esto aquí o en XHTML, creo que al ir mas relacionado con eventos estará mejor aquí. ...
  #1 (permalink)  
Antiguo 28/06/2007, 03:05
 
Fecha de Ingreso: diciembre-2004
Mensajes: 278
Antigüedad: 19 años, 5 meses
Puntos: 0
Problema ENTER y formulario

Lo primero de todo, no se exactamente si poner esto aquí o en XHTML, creo que al ir mas relacionado con eventos estará mejor aquí.

Mi problema no es el tipico: "quiero que cuando pulse ENTER se ejecute el submit() del formulario".
Es mas bien al contrario.
Tengo lo siguiente (resumido):
Código:
<form name="formulario" id="formulario" method="post" action="index.php">
<input type="hidden" name="modo" id="modo"/>
<input type="hidden" name="accion" id="accion" value="" />
<label>Código:</label> <input type="text" name="codigo" id="codigo" value="" onkeyup=" busca_caja();"/>
</form>
El problema está en que si se pulsa ENTER en el input "codigo" el formulario hace submit(). La funcion busca_caja() os aseguro que no tiene nada que ver.
Es más, si elimino el evento onkeyup sigue ocurriendo lo mismo...
Lo curioso es en el formulario de login que tengo en otra pagina tengo que usar: onkeypress="submit_enter(event,'login');" para conseguir todo lo contrario (submit_event realiza un submit al pulsar ENTER)

Ambos formularios tienen los mismos atributos:
Código:
<form name="formulario" id="formulario" method="post" action="index.php">
Incluso he creado un archivo html aparte con el primer codigo que os he puesto y da el mismo problema.

Estoy desesperado la verdad, no se que mirar.
  #2 (permalink)  
Antiguo 28/06/2007, 03:28
 
Fecha de Ingreso: diciembre-2004
Mensajes: 278
Antigüedad: 19 años, 5 meses
Puntos: 0
Re: Problema ENTER y formulario

Otro ejemplo que os doy seria este:
Porque el primer formulario no hace submit al pulsar ENTEr sobre cualquiera de sus input text pero en cambio en el segundo si?

Código:
<html>
<body>



<form name="formulario2" id="formulario2" method="post" action="index.php">
<input type="hidden" name="modo" id="modo"/>

<div id="content">
	<h3>Ingresa tu usuario</h3><table ><tr >
<td>Usuario:</td>
<td><input type="text" name="login" id="login" value="" class="input_medium" /></td>
</tr>
<tr >

<td>Contraseña:</td>
<td><input type="password" name="pass" id="pass" value="" class="input_medium" /></td>
</tr>
<tr >
<td></td>
<td><input type="button" onclick="goGo('login');" value="Aceptar" /></td>
</tr>
</table>
</div>
</form>


<form name="formulario" id="formulario" method="post" action="index.php" >
<input type="hidden" name="action" id="action"/>
Escribe: <input type="text" name="uno"  id="uno"/>
</form>
</body>
</html>
  #3 (permalink)  
Antiguo 28/06/2007, 03:31
 
Fecha de Ingreso: diciembre-2004
Mensajes: 278
Antigüedad: 19 años, 5 meses
Puntos: 0
Re: Problema ENTER y formulario

En cambio si añado al segundo formulario un segundo input type="text", ya no se efectua el submit al pulsar la tecla ENTER!!!


Mi no entiende...

Edito: Bueno acabo de ver (en una pagina con pintas de tener años colgada ) que es un comportamiento habitual...

Cita:
En los casos en los que el formulario conste de más de un control, es decir, de más de un campo de entrada de datos, será necesario incluir el botón. Si el formulario simplemente tiene uno, como ocurre en este primer ejemplo que hemos realizado nosotros, el navegador es capaz de entender que al pulsar la tecla ENTER el usuario quiere mandar los datos de ese formulario, y por tanto el uso de botón de envío es opcional.
Más info aquí:explicación

La verdad me siento un poco tonto, "tantos" años programando en web y me entero de esto ahora...

Última edición por clinisbut; 28/06/2007 a las 03:42
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 08:39.