Foros del Web » Programando para Internet » Javascript »

Validar formulario Submit

Estas en el tema de Validar formulario Submit en el foro de Javascript en Foros del Web. Compañeros(as) Tengo un formulario de nombre fContactoAdministrador, este formulario es el tipico de contacto que tiene tres campos: nombre,email, comentario y el correspondiente boton (type=Submit). ...
  #1 (permalink)  
Antiguo 18/05/2006, 09:18
 
Fecha de Ingreso: marzo-2004
Ubicación: Chile
Mensajes: 382
Antigüedad: 20 años, 1 mes
Puntos: 0
Validar formulario Submit

Compañeros(as)

Tengo un formulario de nombre fContactoAdministrador, este formulario es el tipico de contacto que tiene tres campos: nombre,email, comentario y el correspondiente boton (type=Submit).

Trato de validar el formulario pero en todas las partes que he buscado validar formularios(incluyendo esta web) me aparece el bonton con el type button(Type=button)y no como lo tengo yo submit, el hecho es que no me funciona.

El codigo del formulario es:

<form id="fContactoAdministrador" name="fContactoAdministrador" method="post" action="envia_form.php">
<p>&nbsp;</p>
<table width="459">
<tr>
<th width="110" scope="col"><p style="text-align:left"><strong>Nombre</strong>:</p></th>
<th width="337" scope="col"><label>
<div align="left">
<input name="nombre" type="text" id="nombre" size="47" />
</div>
</label></th>
</tr>
<tr>
<td><p style="text-align:left"><strong>Correo Electr&oacute;nico: </strong></p></td>
<td><div align="left">
<input name="email" type="text" id="email" size="47" />
</div></td>
</tr>
<tr>
<td colspan="2"><p style="text-align:left"><strong>Comentarios / Sugerencias / Solicitud de Informaci&oacute;n.</strong></p></td>
</tr>
<tr>
<td colspan="2"><p style="text-align:left"><textarea name="mensaje" cols="50" id="mensaje"></textarea></p></td>
</tr>
</table>
<label></label>
<p align="right">
<input name="enviar" type="submit" id="enviar" value="Enviar"/>
</p>
<p>&nbsp;</p>
</form>

y hay otras veces que si me funciona pero no reraliza la accion que se valla a la pagina envia_form.php.

No entiendo mucho esto, sera necesario cambiar el type del boton a button pero como le hago luego para que se valla a envia_form.php ya que no me resulta.

La funcion que valida es asi:

<script language="javascript">
function ValidarForm()
{
if (document.fContactoAdministrador.nombre.value.leng th<4)
{
alert"Debe Ingresar a lo Menos un Nombre de 4 Caracteres";
fContactoAdministrador.nombre.focus();
return;
}
}
</script>

Bueno espero haberme explicado bien, compañeros(as) de antemano se les agradece cualquier comentario, critica o sugerencia.

Saludos desde Viña del Mar, CHILE
  #2 (permalink)  
Antiguo 18/05/2006, 09:23
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola juan007

Prueba corrigiendo un par de cosillas:

<form id="fContactoAdministrador" name="fContactoAdministrador" method="post" action="envia_form.php" onsubmit="return ValidarForm()">
Código:
<script type="text/javascript">
function ValidarForm()
{
if (document.fContactoAdministrador.nombre.value.length<4)
{
alert"Debe Ingresar a lo Menos un Nombre de 4 Caracteres";
document.fContactoAdministrador.nombre.focus();
return false;
}
}
</script>
Espero que te funcione. Saludos,
  #3 (permalink)  
Antiguo 18/05/2006, 09:25
 
Fecha de Ingreso: noviembre-2005
Mensajes: 117
Antigüedad: 18 años, 5 meses
Puntos: 0
si colocas type submit, el formulario se va a enviar sin validar. El button no hace nada hasta que vos le decis al formulario que se envie.

Cambia el

<input name="enviar" type="submit" id="enviar" value="Enviar"/>

por

<input name="enviar" type="button" id="enviar" value="Enviar"/>

y el javascript dejalo asi

Código:
<script language="javascript">
function ValidarForm()
{
if (document.fContactoAdministrador.nombre.value.leng th<4)
{
alert"Debe Ingresar a lo Menos un Nombre de 4 Caracteres";
fContactoAdministrador.nombre.focus();
return;
} else {
document.fContactoAdministrador.submit();
}
}
</script>
ahi estas validando, y si hay mas de 4 caracteres entonces llama al metodo submit del formulario y lo envia.

EDIT: Javier me gano de antemano :(, las dos formas son validas. Igual lo idea seria que saques el input ese y pongas un <button></button>
  #4 (permalink)  
Antiguo 18/05/2006, 10:00
 
Fecha de Ingreso: marzo-2004
Ubicación: Chile
Mensajes: 382
Antigüedad: 20 años, 1 mes
Puntos: 0
No me funciona...QUE SERA.

Primero que todo gracias a los dos por su ayuda pero no me funciona, para el codigo de JavierB asi me quedo el codigo.

La funcion :

<script type="text/javascript">
function ValidarForm()
{
if (document.fContactoAdministrador.nombre.value.leng th<4);
{
alert"Debe Ingresar a lo Menos un Nombre de 4 Caracteres";
document.fContactoAdministrador.nombre.focus();
return false;
}
}
</script>


El Formulario:
<form id="fContactoAdministrador" name="fContactoAdministrador" method="post" action="envia_form.php" onsubmit="return ValidarForm()">


El Boton

<input name="enviar" type="submit" id="enviar" value="Enviar"/>


Para el caso compañero JavierB le hago un clic al boton enviar y se va a la pagina envia_form.php, pero no valida ya que no relleno ningun campo.



AHORA PARA EL CODIGO DE rkpost:

la funcion

function ValidarForm()
{
if (document.fContactoAdministrador.nombre.value.leng th<4)
{
alert"Debe Ingresar a lo Menos un Nombre de 4 Caracteres";
fContactoAdministrador.nombre.focus();
return;
}
else
{
document.fContactoAdministrador.submit();
}
}
</script>

El Formulario

<form id="fContactoAdministrador" name="fContactoAdministrador" method="post" action="envia_form.php">

El Boton:

<input name="enviar" type="button" id="enviar" value="Enviar"/>

Para el caso compañero rkpost le hago clic al boton enviar y no me hace nada , creoo que debe ser que tengo que llamar a la funcion desde el boton pero nose como.


UNA PREGUNTA PARA AMBOS LOS IF AL FINAL LLEVAN PUNTO Y COMA (;) YA QUE INTERNET ME RECLAMABA QUE FALTABA UN PUNTO Y COMA EN ESA LINEA LE PUSE EL PUNTO Y COMO Y YA NO ARROJA ERROR.

GRACIAS NUEVAMENTE A AMBOS, ESPERO QUE POUEDAN SEGUIR AYUDANDOME.
  #5 (permalink)  
Antiguo 18/05/2006, 10:06
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola de nuevo.

He probado el código y aparte de un error en la línea del alert, que se me había pasado antes, me ha funcionado bien:

alert("Debe Ingresar a lo Menos un Nombre de 4 Caracteres");

Saludos,
  #6 (permalink)  
Antiguo 18/05/2006, 10:08
 
Fecha de Ingreso: noviembre-2005
Mensajes: 117
Antigüedad: 18 años, 5 meses
Puntos: 0
<input name="enviar" type="button" id="enviar" value="Enviar" onClick="ValidarForm()" />

ahi te tiene q andar
  #7 (permalink)  
Antiguo 18/05/2006, 10:24
 
Fecha de Ingreso: marzo-2004
Ubicación: Chile
Mensajes: 382
Antigüedad: 20 años, 1 mes
Puntos: 0
Funcionaron las dos respuestas.

Sin Palabras.....gracias Nuevamente A Ambos, Por Su Tiempo Y Dedicacion, Mas Aun Por Las Respuestas Tan Rapidas.

Saludos Compañeros Desde Viña Del Mar , Chile
  #8 (permalink)  
Antiguo 18/05/2006, 10:36
 
Fecha de Ingreso: noviembre-2005
Mensajes: 117
Antigüedad: 18 años, 5 meses
Puntos: 0
ya que estamos te comento la diferencia entre una forma y la otra.

Con la solucion de Javier, si javascript no esta activado, el formulario es enviado de todas formas. Con la que puse yo, el formulario solo es enviado si el cliente esta usando javascript.

Esta en vos decidir si crees vital que la validad se haga si o si antes de mandarlo ( en todo caso si no tiene javascript no pasaria nada ) o en el peor de los casos enviarlo sin validar.

Y otro detalles mas, las validaciones siempre en convenientes hacerlas en el servidor, para evitar el problema de que el cliente desactive el javascript.
  #9 (permalink)  
Antiguo 18/05/2006, 10:49
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

rkpost:
La funcionalidad de los botones siempre debe darse con el tipo (type) y si es un botón para enviar un formulario sin duda debe ser del tipo submit... lo mismo que se puede hacer un reset con cualquier botón usando la función reset() del form, pero ya existe el tipo reset para esos casos, y los genéricos deben reservarse para otras funcionalidades (cargar datos desde otras funciones, realizar operaciones secundarias...)

Coincido contigo en que es preferible las validaciones en el servidor, aunque claro está que se puede ahorrar bastante tiempo y recursos con la ayuda de script en el cliente.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #10 (permalink)  
Antiguo 18/05/2006, 11:03
 
Fecha de Ingreso: noviembre-2005
Mensajes: 117
Antigüedad: 18 años, 5 meses
Puntos: 0
me refiero a que veo mas correcto utilizar <button type="submit"></button> que un input. Un button es un boton, un input es una parte del formulario de donde ingresa informacion. No veo correcta la asociacion "clickear en un sitio" con "input", en cambio un button tiene mas sentido.
  #11 (permalink)  
Antiguo 18/03/2008, 13:47
Avatar de hackteam  
Fecha de Ingreso: diciembre-2007
Mensajes: 67
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Validar formulario Submit

yo use las posibilidades que mencionaron pero tengo el sigte problema
<form action="procesa.php" method="POST" name="form" onSubmit="return validar();">
al usar esta me funciona correctamente, pues al llamar a procesa.php no se ven los datos enviados por POST si uso button en vez de submit, al enviar el formulario a procesa.php se ven todos los datos introducidos (incluyendo las contraseñas) existe alguna manera de solucionar eso, debido a que si mi usuario no tiene activado el javascript, entonces lo enviaria de igual forma a procesa.php? saludos!
  #12 (permalink)  
Antiguo 18/03/2008, 14:03
 
Fecha de Ingreso: marzo-2008
Mensajes: 342
Antigüedad: 16 años, 1 mes
Puntos: 4
Re: Validar formulario Submit

Cita:
Iniciado por hackteam Ver Mensaje
yo use las posibilidades que mencionaron pero tengo el sigte problema
<form action="procesa.php" method="POST" name="form" onSubmit="return validar();">
al usar esta me funciona correctamente, pues al llamar a procesa.php no se ven los datos enviados por POST si uso button en vez de submit, al enviar el formulario a procesa.php se ven todos los datos introducidos (incluyendo las contraseñas) existe alguna manera de solucionar eso, debido a que si mi usuario no tiene activado el javascript, entonces lo enviaria de igual forma a procesa.php? saludos!
tienes quitar la opion action del form y quitar el boton y simplemente hacer un link

<a href="javascript:tufuncion()">enviar</a>

y en el javascript
<script>
function tufuncion()
{
document.nombredetuformulario.submit();
}
</script>

debes de indicar que debe activar su javascript si lo tiene desactivado.

un saludo
  #13 (permalink)  
Antiguo 18/03/2008, 17:15
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Validar formulario Submit

Hola:

Los formularios siempre, siempre deben enviarse con botones submit (o image)... otro tipo de envío se considera "inaccesible"

Los datos por post no deberían verse... mejor explícate...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 01:13.