Foros del Web » Programando para Internet » Javascript »

envio de formulario con 2 submit presionando intro

Estas en el tema de envio de formulario con 2 submit presionando intro en el foro de Javascript en Foros del Web. Hola a todos, tengo un pequeño problema con un formulario de este tipo: Código HTML: <form name= "formulario" value= "prueba" method= "post" > <input type= ...
  #1 (permalink)  
Antiguo 15/03/2006, 06:56
 
Fecha de Ingreso: marzo-2004
Mensajes: 56
Antigüedad: 20 años, 1 mes
Puntos: 0
envio de formulario con 2 submit presionando intro

Hola a todos, tengo un pequeño problema con un formulario de este tipo:

Código HTML:
<form name="formulario" value="prueba" method="post">
	<input type="text" name="caja1" value="hola"><br>
	<input type="text" name="caja1" value="hola"><br>

	
	<input type="submit" name="boton1" value="boton1" >
	<input type="submit" name="boton2" value="boton2">
	<input type="submit" name="boton3" value="boton3">
</form> 
El problema es que el boton que tiene que enviar el formulario es al pulsar 'intro' tiene que ser 'boton3'. Necesito que me llegue por el formulario 'boton3'.

La solucion rapida seria poner el 'boton3' en primer lugar, pero en el caso en el que estoy esto es totalmente imposible.

Hay alguna manera de conseguir esto???
  #2 (permalink)  
Antiguo 15/03/2006, 10:05
Avatar de javiermil  
Fecha de Ingreso: agosto-2004
Mensajes: 509
Antigüedad: 19 años, 8 meses
Puntos: 2
Hola, prueba a ver si te funciona usando tabindex, ponlo en el boton3 a 1 y en los otros a 2 y 3. A ver qué pasa y ya me cuentas. Saludos
  #3 (permalink)  
Antiguo 15/03/2006, 12:33
 
Fecha de Ingreso: marzo-2004
Mensajes: 56
Antigüedad: 20 años, 1 mes
Puntos: 0
gracias por contestarme, pero ... :( no funciona.

Con el tabulador si sigue ese orden; pero cuando presiono enter se envia el boton1. Alguna idea mas????
  #4 (permalink)  
Antiguo 16/03/2006, 03:50
Avatar de javiermil  
Fecha de Ingreso: agosto-2004
Mensajes: 509
Antigüedad: 19 años, 8 meses
Puntos: 2
Prueba poniendo el evento onkeypress dentro del boton3 y pon dentro javascript:idDelformulario.submit();

SAludos
  #5 (permalink)  
Antiguo 16/03/2006, 05:43
 
Fecha de Ingreso: marzo-2004
Mensajes: 56
Antigüedad: 20 años, 1 mes
Puntos: 0
He probado lo que me has dicho pero nada, sigue sin funcionar. El codigo que he puesto es este.

Código HTML:
<form name="formulario" id="formulario" value="prueba" method="get">
	<input type="text" name="caja1" value="hola"><br>
	<input type="text" name="caja1" value="hola"><br>
	
	<input type="submit" name="boton1" value="boton1">
	<input type="submit" name="boton2" value="boton2">
	<input type="submit" name="boton3" value="boton3" Onkeypress="javascript:formulario.submit()">
</form> 
  #6 (permalink)  
Antiguo 16/03/2006, 06:46
Avatar de javiermil  
Fecha de Ingreso: agosto-2004
Mensajes: 509
Antigüedad: 19 años, 8 meses
Puntos: 2
Una cosa, tu lo que quieres es que la página haga submit cuando le des a intro? Porque si estas puesto sobre el boton y le das a intro se ejecuta el submit del boton. Pegame el codigo de la pagina.
Prueba a poner el onkeypress en el body. Luego dentro del onkeypress pones una funcion de javascript que compruebe que el foco esta en el boton3, es decir, que boton3.focus es true y haces el submit. De todos modos no entiendo muy bien que es lo que quieres hacer, cual es el fin, explicame un poco mejor. Saludos
  #7 (permalink)  
Antiguo 16/03/2006, 10:10
 
Fecha de Ingreso: marzo-2004
Mensajes: 56
Antigüedad: 20 años, 1 mes
Puntos: 0
Gracias otra vez por la ayuda. Te explico lo que quiero hacer:

- tengo un formulario normal y corriente con tres input de tipo submit colocados uno uno detras de otro.

- lo que quiero es enviar el formulario presionando 'intro'. En cisrcunstancias normales dentro de un formulario presionar 'intro' equivale a presionar al primer input de tipo submit. El valor del boton debe ser enviado ya que lo necesito en la pagina siguiente para tratar el formulario de una forma u otra. Pero el boton que debe de corresponder al 'intro' tiene que ser el tercero (seria la opcion por defecto) y no el primero.

- con un ejemplo

Código HTML:
<form name="formulario" id="formulario" method="post">
	<input type="text" name="codigo_cliente" value=""><br>
	<input type="text" name="nombre" value=""><br>
	
	<input type="submit" name="borrar" value="borrar">
	<input type="submit" name="comprobar" value="comprobar valores">
	<input type="submit" name="confirmar" value="confirmar cambios">
</form> 
Este es un ejemplo de mi caso; tengo este formulario y si presionara 'intro' la que haria seria pasar el formulario con el boton borrar, que en la pagina siguiente se procesaria y borria un registro de la base de datos (correspondiente al codigo de cliente indicado en el formulario). Debido a esto lo que quiero es que al presionar 'intro' corresponda a presionar el boton 3º que seria confirmar.

Respecto a lo que me decias que probara en el ejercicio anterior; parece que funciona pero deberia de identificar la tecla que presiono, y ese metodo preferiria dejarlo como ultimo recurso ya que si es un textarea donde se puede escribir un texto muy largo se estaria llamando continuamente a la funcion y relentizaria un poco la fluidez al escribir (aunque si no queda otro remedio).

Aqui te pongo el codigo que hice con lo que me decias en el mensaje anterior

Código HTML:
function enviar_formulario(){
	// aqui deberia diferenciar si la tecla presionada es 'intro' (si lo es pongo el foco en el boton)

	// comprobar si el foco esta en boton3
	formulario.boton3.focus();
	
}

</script>

<form name="formulario" id="formulario" method="get" onkeypress="enviar_formulario();">
	<input type="text" name="caja1" value="hola"><br>
	<input type="text" name="caja1" value="hola"><br>
	
	<input type="submit" name="boton1" value="boton1">
	<input type="submit" name="boton2" value="boton2">
	<input type="submit" name="boton3" value="boton3"">
</form> 
Te vuelvo a dar las gracias por las moletias que te estas tomando
  #8 (permalink)  
Antiguo 21/03/2006, 10:18
 
Fecha de Ingreso: marzo-2004
Mensajes: 56
Antigüedad: 20 años, 1 mes
Puntos: 0
Por si a alguien le interesa lo he conseguido hacer con este codigo

Código HTML:
<script language="JavaScript" language="text/javascript">
function enviar_formulario(evento){
	// aqui deberia diferenciar si la tecla presionada es 'intro' (si lo es pongo el foco en el boton)
	tecla = (document.all) ? evento.keyCode : evento.which;

	// comprobar si el foco esta en boton3
	if (tecla == 13){
		formulario.boton3.focus();
	}
	
}

</script>

<form name="formulario" id="formulario" method="get" onkeypress="enviar_formulario(event);">
	<input type="text" name="caja1" value="hola"><br>
	<input type="text" name="caja1" value="hola"><br>
	
	<input type="submit" name="boton1" value="boton1">
	<input type="submit" name="boton2" value="boton2">
	<input type="submit" name="boton3" value="boton3"">
</form> 
A mi forma de ver no es lo mas correcto pero es la unica solucion que se me ocurre.

Quiero darles las gracias por la ayuda.

PD - si alguien tiene alguna idea para hacerlo de una forma mas eficiente ...
  #9 (permalink)  
Antiguo 03/02/2008, 03:28
 
Fecha de Ingreso: julio-2005
Mensajes: 3
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: envio de formulario con 2 submit presionando intro

Hola: estuve mirando la solución final y me viene muy bien pero no funciona en
Firefox. No consigo hacer que el evento.which respopnda.
Muchas gracias si alguien me puede ayudar.
  #10 (permalink)  
Antiguo 03/02/2008, 03:48
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: envio de formulario con 2 submit presionando intro

Hola AdyMat

Corrige esta línea:

Código:
	if (tecla == 13){
		document.formulario.boton3.focus();
	}
Saludos,
  #11 (permalink)  
Antiguo 03/02/2008, 12:11
 
Fecha de Ingreso: julio-2005
Mensajes: 3
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: envio de formulario con 2 submit presionando intro

Gracias Javier por tu pronta respuesta pero tampoco funciona, sigue apareciendo el boton1.
  #12 (permalink)  
Antiguo 03/02/2008, 13:46
 
Fecha de Ingreso: julio-2005
Mensajes: 3
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: envio de formulario con 2 submit presionando intro

Es que recibe el foco porque el boton se activa pero se envian los datos del boton1 y queda asi:

botones.php?caja1=hola&caja1=hola&boton1=boton1
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 04:02.