Foros del Web » Programando para Internet » Javascript »

problema al validar Formulario antes de enviar

Estas en el tema de problema al validar Formulario antes de enviar en el foro de Javascript en Foros del Web. hola ya tengo una funsion la cual valida los campos del formulario antes de enviarlo y funciona! pero aun asi no me regresa al mismo ...
  #1 (permalink)  
Antiguo 27/04/2007, 21:11
Avatar de malcolmim  
Fecha de Ingreso: abril-2007
Mensajes: 50
Antigüedad: 17 años
Puntos: 0
Sonrisa problema al validar Formulario antes de enviar

hola ya tengo una funsion la cual valida los campos del formulario antes de enviarlo y funciona! pero aun asi no me regresa al mismo formulario para llenar los campos que deje vacios.
en lugar de regresarme me envia este error

Column 'usuario' cannot be null.

o sia lguien sabe otra forma de controlar esto de no dejar campos vacios ya sea mandando un mensaje o poniendo asteriscos al lado del campo de formulario vacio para que lo llenen como lo hace hotmail u otra funsion se los agradeceria...

gracias
  #2 (permalink)  
Antiguo 27/04/2007, 21:13
Avatar de Gurrutello  
Fecha de Ingreso: enero-2002
Ubicación: Ontario,Toronto [Canada]
Mensajes: 2.017
Antigüedad: 22 años, 3 meses
Puntos: 6
Re: problema al validar Formulario antes de enviar

hola puedes poner el codigo que tienes?
__________________
Un Saludo
www.tutores.org
Asp | Php | Javascript | Perl | Coldfusion | Flash | +- 2000 codigos
  #3 (permalink)  
Antiguo 28/04/2007, 08:52
Avatar de malcolmim  
Fecha de Ingreso: abril-2007
Mensajes: 50
Antigüedad: 17 años
Puntos: 0
Re: problema al validar Formulario antes de enviar

este es el codigo que va dentro del <HEAD>

<script language="javascript">
function validar()
{
if(document.formAlta.elements[0].value==""){alert("No puede dejar este campo vacio"); document.formAta.elements[0].focus(); return false;}
// if(document.form1.elements[1].value==""){alert("No puede dejar este campo vacio"); document.form1.elements[1].focus(); return false;}
}
</script>



lo que esta en negrita es lo que se le agrega en el form


<form action="<?php echo $editFormAction; ?>" method="POST" name="formAlta" id="formAlta" onsubmit="return validar();">
  #4 (permalink)  
Antiguo 28/04/2007, 09:53
 
Fecha de Ingreso: enero-2007
Mensajes: 51
Antigüedad: 17 años, 3 meses
Puntos: 0
Sonrisa Re: problema al validar Formulario antes de enviar

Hola a todos creo que les va a encantar esta validación de formularios que les voy a dejar

Este es el archivo html "prueva.html"

Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <script src="condicion.js" type="text/javascript">
    </script>
    <title></title>
</head>
<body>
    <form name="datos" onsubmit="return validar(this)" action="" method="post">
        <table>
            <tr>
                <td>Nombre y Apellido:</td>
                <td><input type="text" size="40" name="nombre_f"></td>
            </tr>
            <tr>
                <td>Email:</td>
                <td><input type="text" size="40" name="email_f"></td>
            </tr>
            <tr>
                <td>Telefono:</td>
                <td><input onkeypress="return numeralsOnly(this.value,event,0)" type="text" maxlength="11" size="12" name="telefono_f"></td>
            </tr>
        </table><input type="submit" value="Siguiente &raquo;">
    </form>
    </body>
</html> 
este es el archivo javascript "condicion.js"
Código:
function numeralsOnly (currv, evt, decimal)
{
	evt = (evt) ? evt : event;
	var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : ((evt.which) ? evt.which : 0));
	if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 46)
	{
		return false;
	}
	if (charCode == 46)
	{
		if (decimal == 0)
		{
			return false;
		}
		else
		{
			if (currv.indexOf(".") != -1)
			{
				return false;
			}
		}
	}
	else if (currv.indexOf(".") != -1)
	{
		var s = currv.substring(currv.indexOf("."));
		if (s.length > decimal)
		{
			return false;
		}
	}
	return true;
}
function validar(form)
{
	var email = form.email_f.value.toLowerCase()
	var domain = email.substr(email.indexOf('@') + 1,email.length)
	if (domain == "mipunto.com")
	{
		alert("Debe suministrar otro email que no sea una cuenta de MIPUNTO.COM");
		return (false);
	}
	if (form.nombre_f.value == "")
	{
		alert("Debe suministrar tu nombre y apellido.");
		return (false);
	}
	if (form.email_f.value == "")
	{
		alert("Debe suministrar tu email.");
		return (false);
	}
	var stripped = form.telefono_f.value.replace(/[\(\)\.\-\ ]/g, '');
	if (isNaN(parseInt(stripped)))
	{
		alert("El numero telefonico contiene caracteres no validos");
		return (false);
	}
	if (stripped.length != "11")
	{
		alert("Numero de telefono incorrecto. Verifica que hallas incluido el codigo de area o de celular. El numero telefonico debe constar de 11 digitos.");
		return (false);
	}
	var checkTLD=1;
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|gob|arpa|biz|aero|name|coop|info|pro|museum)$/;
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=email.match(emailPat);
	if (matchArray==null)
	{
		alert("Debe escribir una direccion de correo valida.");
		return false;
	}
	var user=matchArray[1];
	var domain=matchArray[2];
	for (i=0; i<user.length; i++)
	{
		if (user.charCodeAt(i)>127)
		{
			alert("La direccion de correo contiene caracteres no validos en el usuario.");
			return false;
		}
	}
	for (i=0; i<domain.length; i++)
	{
		if (domain.charCodeAt(i)>127)
		{
			alert("La direccion de correo contiene caracteres no validos en el dominio.");
			return false;
		}
	}
	if (user.match(userPat)==null)
	{
		alert("Debe escribir una nombre de usuario valido en el email.");
		return false;
	}
	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++)
	{
		if (domArr[i].search(atomPat)==-1)
		{
			alert("Debe escribir un dominio valido en el email.");
			return false;
		}
	}
	if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1)
	{
		alert("El email debe terminar en un dominio conocido o en un subdominio de " + "pais.");
		return false;
	}
return (true);
}
Desearía que se intentara expandir la validación de este formulario
Como por ejemplo “La dirección IP de Destino del email es invalida” algo como eso




Léanse esta información w w w .duamu.com/re/articulo/1348/id/356/articulos-identificar-clientes-por-su-ip-un-mecani.html

¿Como Reconocer una Maquina?
________________________________________
Como podriamos identificar una maquina (NO USUARIO) que se conecte a nuestro servidor.
Yo antes lo hacia mediante una cookie, pero sucedia que los users más experimentados borraban dicha cookie y burlaban el sistema para que el servidor los reconociera nuevamente.. Y RECONOCER UNA MAQUINA POR IP "NO SIRVE" YA QUE HAY MUCHAS CONEXIONES TIPO PROXY donde muchas maquinas tienen la misma IP en internet....


Que solucion me darian ustedes o si conocen algun "IDENTIFICADOR UNICO DE MAQUINA" que me puedan dar como referencia...

Saludos.-


Esto fue mencionado por “xyyy7” también necesito ayuda en ese tema.

Si ban a responder hacerca del tema de "¿Como Reconocer una Maquina?" No lo agan en este aganlo e w w w .forosdelweb.com/showthread.php?t=485568.
  #5 (permalink)  
Antiguo 28/04/2007, 10:18
 
Fecha de Ingreso: abril-2007
Mensajes: 127
Antigüedad: 17 años
Puntos: 0
Re: problema al validar Formulario antes de enviar

Podes hacer algo mas simple que usar javascript, que a mi gusto trato de evitarlo lo mas posible. Añadiendo una estructura if a la pagina que lleva a cabo el action del formulario, chequeando que ningun campo este vacio utilizando or, por ejemplo:

Código PHP:
<?php
//Tomas las variables del formulario:
$variable=$_POST["name del input correspondiente"]; //tantas de estas como sea necesario

//Chequeas que no haya espacios en blanco:
if ($variable=="" || $variable==""//los caracteres || representan el or
{
//Si algun campo esta vacio:
echo '<p>Debes llenar todos los campos<br>
<a href="link para volver">Volver.</a></p>'
;
}
else
{
//Si estan todos llenos, enviar peticion a la db:
mysql_query("INSERT into tabla (variables) VALUES ('$variable')");
header("location: pagina donde se debe redireccionar tras enviar los datos con exito");
?>
Espero que te sirva, si hay algun error de sintaxis mil disculpas, soy un tanto novato, pero la idea esta.

Última edición por Ioryo; 28/04/2007 a las 12:24
  #6 (permalink)  
Antiguo 21/12/2008, 13:42
 
Fecha de Ingreso: agosto-2008
Mensajes: 54
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: problema al validar Formulario antes de enviar

se que es muy, pero muy tarde y me hubiese gustado ayudar, pero el problema que tienes viende desde mysql, te dice ese error por que los campos de la base de datos debe ser NULL, y tu lo tienes, o tenias NOT NULL. En todo caso, excelentes respuestas por que me ayudaron con mi problema!
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.
Tema Cerrado

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




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