Foros del Web » Programando para Internet » Javascript »

validar formulario

Estas en el tema de validar formulario en el foro de Javascript en Foros del Web. Hola, soy nueva aquí y en el tema en general, y necesito ayudita: Mi problema es el sgte. Estoy haciendo un formulario, para enviarlo usé ...
  #1 (permalink)  
Antiguo 28/05/2010, 16:58
 
Fecha de Ingreso: mayo-2010
Mensajes: 4
Antigüedad: 13 años, 10 meses
Puntos: 0
validar formulario

Hola, soy nueva aquí y en el tema en general, y necesito ayudita:

Mi problema es el sgte. Estoy haciendo un formulario, para enviarlo usé un codigo PHP que lo envía sin tener que hacer una página php externa, y me funciona super bien.
Pero ahora estoy tratando de poner campos obligatorios. Lo quiero hacer con javascript porque quiero que me aparezca un mensajito de error, y eso no lo puedo hacer en php (en php me sale el mensaje en otra pagina y debo volver atrás).
Probé con varios codigos de javascript que encontré, con algunos me aparece un error de codificación, porque el archivo está en ansi y tiene que estar en unicode o algo .. la verdad no me manejo mucho en eso..
pero ahora encontré uno que me funciona, me sale el mensajito, tal como yo quiero, pero al enviar el formulario.. ¡no me llega!...

¿será que estoy haciendo algo mal? ¿o que php y javascript juntos no funcionan?
(el javascript es con onsubmit)
  #2 (permalink)  
Antiguo 28/05/2010, 17:00
Avatar de _cronos  
Fecha de Ingreso: abril-2010
Mensajes: 135
Antigüedad: 14 años
Puntos: 1
Respuesta: validar formulario

Si posteas tu código se intentará ver dónde está el problema.
Saludos (:
__________________
'Dadme un punto de apoyo y moveré el mundo' - Arquímedes
Alianza DIOSES [-GOD-] Ikariam - Mundo Ny (s13)
  #3 (permalink)  
Antiguo 28/05/2010, 17:07
 
Fecha de Ingreso: abril-2010
Ubicación: Colombia
Mensajes: 229
Antigüedad: 14 años
Puntos: 2
Respuesta: validar formulario

Bueno primero en la forma en el evento onSubmit llama una funcion javascript

Código HTML:
Ver original
  1. <form action="datos.php" method="post" name="form1" onSubmit="return val();">
  2. <input name="nombre" type="text" class="input2" id="nombre">
  3. </form>

y luego el javascript que lo pones el el head de la pagina

<script language="JavaScript" type="text/JavaScript">

<head>

function val(){

var nombre= document.form1.nombre.value;
if (nombre== 0){
alert("Seleccione una Carpeta");
document.form1.nombre.focus();
return false;
}


}

</script>

</head>
esto se saca un alert.

Puebalo y me dices.
  #4 (permalink)  
Antiguo 28/05/2010, 17:07
 
Fecha de Ingreso: mayo-2010
Mensajes: 4
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: validar formulario

buen punto...
Este es el codigo javascript:


Código:
 <script type="text/javascript">  
     function validarFrm() {  
       if(!document.frm['nombre'].value) { document.frm['nombre'].focus(); alert('El campo "Nombre" es obligatorio.'); }  
       else if(!document.frm['empresa'].value) { document.frm['empresa'].focus(); alert('El campo "Empresa" es obligatorio.'); }  
       else if(!document.frm['email'].value) { document.frm['email'].focus(); alert('El campo "E-mail" es obligatorio.'); }  
       else if(!document.frm['mensaje'].value) { document.frm['mensaje'].focus(); alert('El campo "Comentarios" es obligatorio.'); }  
       else { document.frm.submit(); }  
       return false;  
     }  
 </script>


El formulario en html con el php para enviarlo por mail:

Código:
<fieldset style="border: 1px solid #e0e2e8; width: 450px;"><legend style=font-size:12px;font-family:verdana;color:#16226f;font-weight:bold;>COTIZACIÓN</legend>

	<?php if (!isset($_POST['email'])) { ?>  

	<form name='frm' id='frm' action="<?=$_SERVER['PHP_SELF']?>" method="post" target='_self' onsubmit="return validarFrm()" class="form">
<table width="430" cellpadding="1">
	<tr><td width="130" align="right" style="margin:0 10px 0 0;"><font size="2" face="verdana">Nombre</font></td><td align="right"> 
	<input type='text' name='nombre' id='nombre' class="form"></td></tr>
	<tr><td width="130" align="right"><font size="2" face="verdana">Rut</font></td><td align="right"> 
	<input type='text' name='rut' id='rut' maxlenght="10" class="form"></td></tr>
	<tr><td width="130" align="right"><font size="2" face="verdana">Dirección</font></td><td align="right"> 
	<input type='text' name='direccion' id='direccion' class="form"></td></tr>
	<tr><td width="130" align="right"><font size="2" face="verdana">Empresa</font></td><td align="right"> 
	<input type='text' name='empresa' id='empresa' class="form"></td></tr>
	<tr><td width="130" align="right"><font size="2" face="verdana">Giro</font></td><td align="right"> 
	<input type='text' name='giro' id='giro' class="form"></td></tr>
	<tr><td width="130" align="right"><font size="2" face="verdana">Teléfono</font></td><td align="right">
	<input type='text' name='telefono' id='telefono' class="form"></td></tr>
	<tr><td width="130" align="right"><font size="2" face="verdana">E-mail</font></td><td align="right">
	<input type='text' name='email' id='email' class="form"></td></tr>
	<tr><td width="130" align="right"><font size="2" face="verdana">Tipo de Cotización</font></td><td align="right">
       <select name="tipo_cotiza" id="tipo_cotiza" class="form">
		<option value="remolques" selected="selected">Remolques / Semiremolques</option>
		<option value="repuestos">Repuestos Veh&iacute;culos</option>
		<option value="construccion">Materiales de Construcci&oacute;n</option>
		<option value="transporte">Transportes</option>
		<option value="asesoria">Asesor&iacute;as</option></select></td></tr>
	<tr><td width="130" align="right"><font size="2" face="verdana">Sus comentarios</font></td><td align="right">
	<textarea name="mensaje"id='mensaje' rows=6 class="form"></textarea></td></tr>
	<tr><td width="130" align="right"></td><td align="right"><br>
	<input type='submit' value='Enviar' style="width:80px;height:25px;background-color:#e0e2e8;border-style:groove;color:#424242;font-size:10pt;font-family:Verdana;">
	<input type='reset' value='Limpiar' style="width:80px;height:25px;background-color:#e0e2e8;border-style:groove;color:#424242;font-size:10pt;font-family:Verdana;"></td></tr>
</table>

</form>

  
<?php }else{  
  

$msg= "";  
$msg= "Mensaje del formulario de cotización";  
$msg.= "\nNombre: ". $_POST['nombre'];  
$msg.= "\nRut: ". $_POST['rut']; 
$msg.= "\nDireccion: ". $_POST['direccion']; 
$msg.= "\nEmpresa: ". $_POST['empresa']; 
$msg.= "\nGiro: ". $_POST['giro']; 
$msg.= "\nEmail: ".$_POST['email'];  
$msg.= "\nTelefono: ". $_POST['telefono']; 
$msg.= "\nTipo_Cotizacion: ". $_POST['tipo_cotiza'];  
$msg.= "\nMensaje: \n".$_POST['mensaje'];  
$remitente = $_POST['email'];  
$subject = "Mensaje enviado por: ".$_POST['nombre'];  
mail('[email protected]', $subject, $msg, "FROM: $remitente");  
  

?>  

  
<p align="left"><Font face="trebuchet MS, Calibri, Arial" size="2" color="#424242">
<strong>Cotización enviada.</strong><br>  
Su cotización se ha enviado correctamente, pronto nos contáctaremos con usted.</font></p>  
<? } ?>  

</fieldset>
  #5 (permalink)  
Antiguo 28/05/2010, 17:15
Avatar de _cronos  
Fecha de Ingreso: abril-2010
Mensajes: 135
Antigüedad: 14 años
Puntos: 1
Respuesta: validar formulario

pepeluis, ahí tendrías que mirar el length del input, no el value; porque si no estás comprobando si su value es 0.
Y no se te envía porque después del document.frm.submit(); pones return false, y entonces ya no lo envía.

Saludos (:
__________________
'Dadme un punto de apoyo y moveré el mundo' - Arquímedes
Alianza DIOSES [-GOD-] Ikariam - Mundo Ny (s13)
  #6 (permalink)  
Antiguo 28/05/2010, 17:28
 
Fecha de Ingreso: mayo-2010
Mensajes: 4
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: validar formulario

ok.. puse return true, pero se me "enviaba" despues del mensaje de alerta .. así que puse return false alfinal de cada item.. dejó de enviarse solo", pero igual no me funciona



Código:
 <script type="text/javascript">  
     function validarFrm() {  
       if(!document.frm['nombre'].value) { document.frm['nombre'].focus(); alert('El campo "Nombre" es obligatorio.');  return false;}  
       else if(!document.frm['empresa'].value) { document.frm['empresa'].focus(); alert('El campo "Empresa" es obligatorio.'); return false; }  
       else if(!document.frm['email'].value) { document.frm['email'].focus(); alert('El campo "E-mail" es obligatorio.'); return false; }  
       else if(!document.frm['mensaje'].value) { document.frm['mensaje'].focus(); alert('El campo "Comentarios" es obligatorio.'); return false; }  
       else { document.frm.submit(); }  
       return true;  
     }  
 </script>
  #7 (permalink)  
Antiguo 28/05/2010, 18:50
 
Fecha de Ingreso: mayo-2010
Mensajes: 4
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: validar formulario

que estupidez la mía...
toda la tarde perdida...
acabo de revisar la carpeta SPAM de mi mail.. y adivinen............

ahora me queda ver cual de las opciones que hice funcionó.. o tal vez fueron todas.. :s

Etiquetas: 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 16:45.