Foros del Web » Programando para Internet » Javascript »

Problema con <input type="submit" ...

Estas en el tema de Problema con <input type="submit" ... en el foro de Javascript en Foros del Web. Buenas de nuevo Pues me ha surgido un problema que no se si es solucionable Por un lado tengo este formulario: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código HTML: ...
  #1 (permalink)  
Antiguo 21/04/2010, 11:40
 
Fecha de Ingreso: mayo-2008
Mensajes: 156
Antigüedad: 16 años
Puntos: 0
Problema con <input type="submit" ...

Buenas de nuevo

Pues me ha surgido un problema que no se si es solucionable

Por un lado tengo este formulario:

Código HTML:
Ver original
  1. <form action="registro2.php" method="post" name="form" id="form">
  2.    <p>Usuario<input type="text" maxlength = "20" size="25" name="usuario"></p>
  3.         <p>Password</label><br /><input type="password" maxlength = "20" size="25" name="contrasena"></p>
  4.  
  5.         <p><center><br>
  6.                         <input type="reset" name="limpiar" value="Borrar Datos">
  7.                         <input type="button" name="enviar" value="Paso 2 >>" onClick="javascript:verifica()"></center></p>
  8.              </form>

Como veis el boton enviar llamar a una función que comprueba que usuario y contraseña no esten en blanco, por lo que tengo que poner input type="button" para que se pare en la página en caso de error

Si pongo button, al pasar el name="enviar" por $_POST, no me la reconoce, pero si pongo type='submit', si me la reconoce (lo de $_POST['enviar'], pero en la funcion de verifica(), en caso de que haya algun input type vacío, no se para en la página, sino que da el posible error pero redirecciona a registro2.php

Espero haberme explicado bien y haber si hay alguna solución para esto, ya que o una de dos en registro2.php no puedo usar el if(isset($_POST['enviar'])) para comprobar que existe "enviar" o por el contrario no puedo verificar en registro.php cn mi funcion verifica si pongo submit en vez de button en el input.

Gracias
  #2 (permalink)  
Antiguo 21/04/2010, 11:53
 
Fecha de Ingreso: mayo-2008
Mensajes: 156
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema con <input type="submit" ...

pongo la funcion por si hiciera falta también:

Código Javascript:
Ver original
  1. function verifica(){
  2.     if(document.form.usuario.value.length < 6)
  3.     {
  4.         alert("Debe ingresar un nombre de Usuario de al menos 6 caracteres");
  5.          document.form.usuario.focus();
  6.         return 0; //devolvemos un cero para dejar de validar
  7.     }
  8.     if(document.form.contrasena.value.length < 6)
  9.    {
  10.         alert("Debe ingresar una contraseña de al menos 6 caracteres");
  11.         document.form.contrasena.focus();
  12.         return 0; //devolvemos un cero para dejar de validar
  13.     }
  14.     else{ //sino enviamos el formulario
  15.         document.form.submit(); //enviamos formulario    
  16.     }
  17. }


la cuestion como ya dije es que si pongo input type="button" no reconoce
if(isset($_POST['enviar']))
........

y si pongo input type="submit" me lo envia si o si aunque haya fallos


gracias!
  #3 (permalink)  
Antiguo 22/04/2010, 10:13
 
Fecha de Ingreso: mayo-2008
Mensajes: 156
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema con <input type="submit" ...

Por favor alguien??

He probado hoy también esto que encontré en este enlace: http://www.forosdelweb.com/f13/problema-con-type-submit-javascript-665301/

Código HTML:
Ver original
  1. <form action="registro2.php" onsubmit="return verifica(this)" method="post" name="form" id="form">


pero tampoco para el formulario en caso de tener casillas vacias



veo que aqui te descuidas y el tema baja en 2 horas a la pagina 2 o 3
  #4 (permalink)  
Antiguo 22/04/2010, 10:35
 
Fecha de Ingreso: mayo-2008
Mensajes: 156
Antigüedad: 16 años
Puntos: 0
Problema con input type=submit

Buenas de nuevo

Pues me ha surgido un problema que no se si es solucionable

Por un lado tengo este formulario:

Código HTML:
Ver original
  1. <form action="registro2.php" method="post" name="form" id="form">
  2.    <p>Usuario<input type="text" maxlength = "20" size="25" name="usuario"></p>
  3.         <p>Password</label><br /><input type="password" maxlength = "20" size="25" name="contrasena"></p>
  4.  
  5.         <p><center><br>
  6.                         <input type="reset" name="limpiar" value="Borrar Datos">
  7.                         <input type="button" name="enviar" value="Paso 2 >>" onClick="javascript:verifica()"></center></p>
  8.              </form>

Como veis el boton enviar llamar a una función que comprueba que usuario y contraseña no esten en blanco, por lo que tengo que poner input type="button" para que se pare en la página en caso de error

Si pongo button, al pasar el name="enviar" por $_POST, no me la reconoce, pero si pongo type='submit', si me la reconoce (lo de $_POST['enviar'], pero en la funcion de verifica(), en caso de que haya algun input type vacío, no se para en la página, sino que da el posible error pero redirecciona a registro2.php

Espero haberme explicado bien y haber si hay alguna solución para esto, ya que o una de dos en registro2.php no puedo usar el if(isset($_POST['enviar'])) para comprobar que existe "enviar" o por el contrario no puedo verificar en registro.php cn mi funcion verifica si pongo submit en vez de button en el input.

Gracias


PD: Edito con lo siguiente:
pongo la funcion por si hiciera falta también:

Código Javascript:
Ver original
  1. function verifica(){
  2.     if(document.form.usuario.value.length < 6)
  3.     {
  4.         alert("Debe ingresar un nombre de Usuario de al menos 6 caracteres");
  5.          document.form.usuario.focus();
  6.         return 0; //devolvemos un cero para dejar de validar
  7.     }
  8.     if(document.form.contrasena.value.length < 6)
  9.    {
  10.         alert("Debe ingresar una contraseña de al menos 6 caracteres");
  11.         document.form.contrasena.focus();
  12.         return 0; //devolvemos un cero para dejar de validar
  13.     }
  14.     else{ //sino enviamos el formulario
  15.         document.form.submit(); //enviamos formulario    
  16.     }
  17. }


la cuestion como ya dije es que si pongo input type="button" no reconoce
if(isset($_POST['enviar']))
........

y si pongo input type="submit" me lo envia si o si aunque haya fallos


gracias!

pd: vuelvo a editar con lo siguiente:

Por favor alguien??

He probado hoy también esto que encontré en este enlace: http://www.forosdelweb.com/f13/problema-con-type-submit-javascript-665301/

Código HTML:
Ver original
  1. <form action="registro2.php" onsubmit="return verifica(this)" method="post" name="form" id="form">


pero tampoco para el formulario en caso de tener casillas vacias
  #5 (permalink)  
Antiguo 22/04/2010, 10:53
 
Fecha de Ingreso: abril-2010
Mensajes: 9
Antigüedad: 14 años
Puntos: 0
Respuesta: Problema con input type=submit

Hola. Prueba a poner esto:

<form action="registro2.php" method="post" name="form" id="form" onsubmit="return validaForm(document.form);">
<p>Usuario<input type="text" maxlength = "20" size="25" name="usuario"></p>
<p>Password</label><br /><input type="password" maxlength = "20" size="25" name="contrasena"></p>

<p><center><br>
<input type="reset" name="limpiar" value="Borrar Datos">
<input name="botonEnviar" type="submit" value="Entrar"/>
</form>


Ya me cuentas si te va bien o no
  #6 (permalink)  
Antiguo 22/04/2010, 10:57
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Tema movido desde PHP a Javascript
  #7 (permalink)  
Antiguo 22/04/2010, 11:23
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Problema con <input type="submit" ...

Hola:

Si en tu validación usas el método submit, el envío lo estás forzando, lo que se debe hacer es en la validación devolver el valor lógico true si la pasa y false para cancelar el envío... el botón del tipo submit sin más, y la validación en el evento, tal como lo puso Lidya

<form onsubmit="return verifica(this)"...

Más info: El abc de los formularios.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #8 (permalink)  
Antiguo 22/04/2010, 13:00
 
Fecha de Ingreso: mayo-2008
Mensajes: 156
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema con <input type="submit" ...

Cita:
Iniciado por caricatos Ver Mensaje
Hola:

Si en tu validación usas el método submit, el envío lo estás forzando, lo que se debe hacer es en la validación devolver el valor lógico true si la pasa y false para cancelar el envío... el botón del tipo submit sin más, y la validación en el evento, tal como lo puso Lidya

<form onsubmit="return verifica(this)"...

Más info: [URL="http://www.caricatos.net/articulos/formularios.php"]El abc de los formularios[/URL].

Saludos

Lo que dice lydia lo he probado y hace lo mismo que poniendo this, es decir, hace lo mismo que espeficiqué al principio, que sale la ventana de alert, pero al segundo pasa a registro2.php
puse esto:[HIGHLIGHT="Javascript"]
Código PHP:
Ver original
  1. <form action="registro2.php" onsubmit="return verifica(document.form);" method="post" name="form" id="form">
y lo que escribió caricatos, no lo entendí del todo
Tengo que cambiar la función entera?? mi función está en el mensaje 2. Que estaría mal y por que?

Ya miré el abc de los formularios esta tarde al ver el link en el que le disteis solución pero lo de la validación no lo acabo de comprender


gracias a todos x las respuestas!!
  #9 (permalink)  
Antiguo 22/04/2010, 15:27
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Problema con <input type="submit" ...

Hola:

El else de tu validación deberías quitarlo, o devolver true, y donde devuelves 0, en realidad tendría que devolver false...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #10 (permalink)  
Antiguo 23/04/2010, 02:27
 
Fecha de Ingreso: mayo-2008
Mensajes: 156
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema con <input type="submit" ...

quité el else y puse lo de false y funcionó.
Bueno funcionó a la 2º vez ya que puse de nuevo type=submit y no funcionaba, lo cambié a button y tampoco, y lo volví a cambiar a submit y milagrosamente funcionó!!
Bueno que siga asi jaja

Muchas gracias!
  #11 (permalink)  
Antiguo 23/04/2010, 03:29
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Problema con <input type="submit" ...

Cita:
Iniciado por yosoloyo Ver Mensaje
quité el else y puse lo de false y funcionó.
Bueno funcionó a la 2º vez ya que puse de nuevo type=submit y no funcionaba, lo cambié a button y tampoco, y lo volví a cambiar a submit y milagrosamente funcionó!!
Bueno que siga asi jaja

Muchas gracias!
Son cosas del enigmático mundo de la web

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Etiquetas: Ninguno
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 23:03.