Foros del Web » Programando para Internet » Javascript »

Formulario validado sin boton submit

Estas en el tema de Formulario validado sin boton submit en el foro de Javascript en Foros del Web. Hola a todos, y felicidade por el portal : aplauso: Primero que todo disculparme si no acierto el foro. La verdad es que no se ...
  #1 (permalink)  
Antiguo 14/02/2010, 17:38
 
Fecha de Ingreso: abril-2009
Mensajes: 30
Antigüedad: 15 años
Puntos: 0
Formulario validado sin boton submit

Hola a todos, y felicidade por el portal : aplauso:

Primero que todo disculparme si no acierto el foro. La verdad es que no se si ponerlo como java o como php.

La cuestion es que tengo un problemilla con un formulario, que se me esta resistiendo:

La cuestion es que quiero validar los campos, poner un captcha y enviarlo con estilos en el boton (o sea sin input)... no se si son demasiadas cosas... Me explico sobre el papel:

Primero pongo el java de validacion:

<script type='text/javascript'>
<!--
function check_form(f)
{
if (f.nom.value=='')
{
alert('Falta: Nom');
f.nom.focus();
return false;
}
if (f.empre.value=='')
{
alert('Falta: Empresa');
f.empre.focus();
return false;
}
document.solicitud.confirm.value='yes';
f.submit();
}
-->
</script>

Y luego el formulario que quiero que se envie (lo pongo con un href) para dar estilos al boton:

<form method=POST onsubmit='return check_form(this)' return false;>
<table width=100% border=0>
<tr><td align=left><i>Nombre:</i></td></tr>
<tr><td align=left><input type=text name=nom size=30></td></tr>
<tr><td align=left><i>Empresa/particular:</i></td></tr>
<tr><td align=left><input type=text name=empre size=30></td></tr>

Añado el captcha:
<tr><td>
<img id="siimage" align="left" style="padding-right: 5px; border: 0" src="modules/captcha/securimage_show.php?sid=<?php echo md5(time()) ?>" />
<br />
<a tabindex="-1" style="border-style: none" href="#" title="Refresh Image" onclick="document.getElementById('siimage').src = 'modules/captcha/securimage_show.php?sid=' + Math.random(); return false"><img src="modules/captcha/images/refresh.gif" alt="Cambiar imagen" border="0" onclick="this.blur()" align="bottom" /></a>
</td><td Valign=top>
<i>Codigo:</i><br />
<input type="text" name="code" size="12" /><br /><br />

y ahora viene cuando me mata, porque si le pongo un imput solo lo valida, y si le ponco un onclick lo envia sin validar:

<a href='send.php' target=_blanK class='Button' onclick='this.form.submit()'>
align="absmiddle">&nbsp; Enviar email</a>

</form>

Esto lo pongo para que solo lo envie si el captcha es correcto

<?php

include('modules/captcha/securimage.php');
$img = new Securimage();
$valid = $img->check($_POST['code']);

if($valid == true) {

$cuerpo = "Formulario enviado\n";
$cuerpo .= "Nom: " . $HTTP_POST_VARS["nom"] . "\n";
$cuerpo .= "Empresa: " . $HTTP_POST_VARS["empre"] . "\n";


mail("[email protected]","Formulario recibido",$cuerpo);

echo "<p>gracias por enviar.</p>";
} else {

echo "<p>el codigo no es correcto.</p>";
}
?>

Pensandolo bien quizas me dejo un if en algun sitio, loque no se donde.

Espero que me haya explicado bien.

Gracias por adelantado, a ver si al final lo consigo con vuestra ayuda, poque ahora mismo estoy atrancado aqui.
  #2 (permalink)  
Antiguo 14/02/2010, 20:05
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Formulario validado sin boton submit

java y javascript no es lo mismo

recuerda usar comillas para establecer los atributos:

si vas a enviar un form, no hace falta href en el link:
<a href="#" target="_blank" class="Button" onclick="this.form.submit();" align="absmiddle">&nbsp; Enviar email</a> absmiddle?????

lo que te marco en rojo no va y nunca se ejecuta:
<form action="send.php" method="post" onsubmit="return check_form(this);" return false;>
  #3 (permalink)  
Antiguo 14/02/2010, 20:15
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Formulario validado sin boton submit

Vos queres que al hacer click en este link
Código HTML:
Ver original
  1. <a href='send.php' target=_blanK class='Button' onclick='this.form.submit()'>
  2. align="absmiddle">&nbsp; Enviar email</a>

Se te haga el submit del formulario? Primero que tenes un par de errores si eso es lo que queres... Te digo como deberias tenerlo

Código HTML:
Ver original
  1. <a href="javascript:void(0);" target="_blank" class="Button" onclick="this.form.submit()" align="absmiddle">&nbsp; Enviar email</a>

Ademas, fijate de corregir un poco tu codigo (si queres)... Por ejemplo todos los valores de los atributos van ecerrados entre comillas dobles!

En cuanto a la funcion javascript, esta bien, pero no deberias llamarla desde el evento onclick de este link?
__________________
HV Studio
Diseño y desarrollo web
  #4 (permalink)  
Antiguo 14/02/2010, 23:14
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: Formulario validado sin boton submit

Hola:

Sin un botón submit, el formulario es "no-accesible", o sea "no recomendable"...

Un botón submit, con unos toques "de estilo" pueden parecerse a los enlaces...
<button type="submit" style="background-color: transparent; border: 0; margin: 0"...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 07/03/2010, 03:14
 
Fecha de Ingreso: abril-2009
Mensajes: 30
Antigüedad: 15 años
Puntos: 0
Respuesta: Formulario validado sin boton submit

Bueno, al final he optado por poner el boton submit para que lo valide, y he puesto en el post otro archivo puente para que el cliente me verifique los datos y con el captcha.

Quizas no es la mejor solucion, pero me sirve.

Muchas gracias a todos!!

Etiquetas: captcha, enviar, input, validar, formulario
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 21:53.