Foros del Web » Programando para Internet » Javascript »

Maldito Formulario

Estas en el tema de Maldito Formulario en el foro de Javascript en Foros del Web. Hola. Necesito que alguien me ayude. Tengo que hacer un formulario en el que antes de mandarse se debe validar. Mi problema es que NO ...
  #1 (permalink)  
Antiguo 14/03/2002, 03:27
Avatar de palidowsky  
Fecha de Ingreso: febrero-2002
Ubicación: Galicia-España
Mensajes: 438
Antigüedad: 22 años, 2 meses
Puntos: 0
Maldito Formulario

Hola.
Necesito que alguien me ayude. Tengo que hacer un formulario en el que antes de mandarse se debe validar. Mi problema es que NO SE JAVASCRIPT, tengo que validar:
la tarjeta de crédito: 16 dígitos
la fecha de caducidad de esa tarjeta: la fecha de caducidad no puede ser anterior a Junio de 2002.
Debo además validar el nombre, apellidos etc.. de las personas; es decir no puede aparecer vacío.
Si alguien me puede echar una mano le estaré muy agradecido
  #2 (permalink)  
Antiguo 14/03/2002, 07:22
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 22 años, 6 meses
Puntos: 5
Re: Maldito Formulario

<html>
...
<head>
...

<script language="JavaScript">
<!--
function validaFormulario(form) {
if (form.tarjeta.length == 16) {
alert('el numero de la tarjeta de credito no es de 16 digitos.');
form.tarjeta.focus();
return false;
}
else if (form.fecha_cad.value < "01/06/2002") {
alert('La fecha es anterior a junio de 2002');
form.fecha_cad.focus();
return false;
}
else if (form.nombre.value == "" || form.apellidos.value=="") {
alert('Los campos nombre y apellidos no pueden estar vacios');
form.nombre.focus();
return false;
}
return true;
}
//-->
</script>
</head>

...

<body>
...
<form action="..." onSubmit="return validaFormulario(this);">
...
</form>
...
</body>
</html>

Básicamente el código es ese... Ten en cuenta que fecha_cad, nombre, apellidos, y tarjeta son los nombres del campo name de cada caja de texto de tu formulario (cambialos) Tambien tendras que fijarte en el formato de fecha cuando lo compares en el else if.

Vamos que este codigo no lo copies tal cual pero te dara una idea de po donde van los tiros si sabes un poco de programacion.

Otra opcion es que publiques tu codigo completo del formulario aquí y alguien te proporciones el código exacto para evaluar lo que tú quieres.

  #3 (permalink)  
Antiguo 14/03/2002, 07:38
bet
 
Fecha de Ingreso: febrero-2001
Mensajes: 292
Antigüedad: 23 años, 2 meses
Puntos: 0
Re: Maldito Formulario

Algo así te puede servir?

Código:
<html>
<head>

<script language="JavaScript">

function checkForm(frm){

	if (frm.tarjeta.value == ""){
		alert("Informe tarjeta");
		frm.tarjeta.focus();
		return false;
	}

	if (frm.fec.value == ""){
		alert("Informe Fecha");
		frm.fec.focus();
		return false;
	}

	if (frm.nombre.value == ""){
		alert("Informe Nombre");
		frm.nombre.focus();
		return false;
	}

	if (frm.apellido.value == ""){
		alert("Informe Apellido");
		frm.apellido.focus();
		return false;
	}

	if (frm.email.value == ""){
		alert("Informe Email");
		frm.email.focus();
		return false;
	}

	var email = frm.email.value;
	var pattern = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;
	flag = pattern.test(email);	
	if(!flag)	{		
		alert("Error en el mail");
		frm.email.focus();
		return false;	
	}


}


var nav4 = window.Event ? true : false;

function acceptNum(evt)
{
	// NOTE: Backspace = 8, Enter = 13, '0' = 48, '9' = 57
	var key = nav4 ? evt.which : evt.keyCode;
	return (key <= 13 || (key >= 48 && key <= 57));
}

function esDigito(sChr){
var sCod = sChr.charCodeAt(0);
return ((sCod > 47) && (sCod < 58));
}

function valSep(oTxt){
var bOk = false;
bOk = bOk || ((oTxt.value.charAt(2) == "-") && (oTxt.value.charAt(5) == "-"));
bOk = bOk || ((oTxt.value.charAt(2) == "/") && (oTxt.value.charAt(5) == "/"));
return bOk;
}

function finMes(oTxt){
var nMes = parseInt(oTxt.value.substr(3, 2), 10);
var nRes = 0;
switch (nMes){
case 1: nRes = 31; break;
case 2: nRes = 29; break;
case 3: nRes = 31; break;
case 4: nRes = 30; break;
case 5: nRes = 31; break;
case 6: nRes = 30; break;
case 7: nRes = 31; break;
case 8: nRes = 31; break;
case 9: nRes = 30; break;
case 10: nRes = 31; break;
case 11: nRes = 30; break;
case 12: nRes = 31; break;
}
return nRes;
}
sigue...
  #4 (permalink)  
Antiguo 14/03/2002, 07:39
bet
 
Fecha de Ingreso: febrero-2001
Mensajes: 292
Antigüedad: 23 años, 2 meses
Puntos: 0
Re: Maldito Formulario

Código:
function valDia(oTxt){
var bOk = false;
var nDia = parseInt(oTxt.value.substr(0, 2), 10);
bOk = bOk || ((nDia >= 1) && (nDia <= finMes(oTxt)));
return bOk;
}

function valMes(oTxt){
var bOk = false;
var nMes = parseInt(oTxt.value.substr(3, 2), 10);
var nAno = oTxt.value.substr(6);

bOk = bOk || ((nMes >= 1) && (nMes <= 12));
if (nAno == 2002 & nMes <6){ bOk=false}
return bOk;
}

function valAno(oTxt){
var bOk = true;
var nAno = oTxt.value.substr(6);
bOk = bOk && ((nAno.length == 2) || (nAno.length == 4));
if (bOk){
for (var i = 0; i < nAno.length; i++){
bOk = bOk && esDigito(nAno.charAt(i));
}
}

if (nAno < 2002){ bOk = false;}
return bOk;
}

function valFecha(oTxt){
var bOk = true;
if (oTxt.value != ""){
bOk = bOk && (valAno(oTxt));
bOk = bOk && (valMes(oTxt));
bOk = bOk && (valDia(oTxt));
bOk = bOk && (valSep(oTxt));
if (!bOk){
alert("Fecha inválida");
oTxt.value = "";
oTxt.focus();
}
}
}
</script>
</head>

<body>

<form name="f1" onSubmit="return checkForm(this);">
<p> Tarjeta de credito: <input type=text name="tarjeta" size=16 maxlength=16 onKeyPress="return acceptNum(event)"></p>
<p> Fecha (dd/mm/aaaa): <input type="text" size="10" maxlength="10" name="fec" onblur="valFecha(this)"></p>

<p> Nombre: <input type="text" size="10" name="nombre"></p>

<p> Apellido: <input type="text" size="10" name="apellido"></p>

<p> Email: <input type="text" size="10" name="email"></p>

<p> <input type="submit" size="10" value="E N V I A R"></p>

</form>
</body>
</html>
<hr noshade size=1><img src="http://www.gograph.com/Images-8712/ClipArt/cat03.gif" height="50" border=0 align="absmiddle"> <font size="2" face="verdana" color="#000000">bet[/CODE]
  #5 (permalink)  
Antiguo 14/03/2002, 10:08
Avatar de palidowsky  
Fecha de Ingreso: febrero-2002
Ubicación: Galicia-España
Mensajes: 438
Antigüedad: 22 años, 2 meses
Puntos: 0
Re: Maldito Formulario

Elvira gracias, lo voy a probar como funcione
(soy un ceporro en JavaScript) me caso contigo.
En serio, gracias
  #6 (permalink)  
Antiguo 18/03/2002, 05:18
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 22 años, 6 meses
Puntos: 5
Re: Maldito Formulario

Pero ya te he dicho que seguramente no te funcionara exactamente porque no conozco tu codigo html de tu formulario concreto.

Pasalo y lo vemos juntos ;) .... y ya veremos lo de la boda en que acaba :P
  #7 (permalink)  
Antiguo 18/03/2002, 09:29
 
Fecha de Ingreso: julio-2001
Ubicación: Internet
Mensajes: 1.690
Antigüedad: 22 años, 9 meses
Puntos: 1
Re: Maldito Formulario

Hola!,

Ya Fue Solucionado En:

<a href='ir.asp?http://www.forosdelweb.com/mensaje.asp?id=68160' target='_blank'>http://www.forosdelweb.com/mensaje.asp?i...</a>

<CENTER><FONT COLOR=Black SIZE=2><I>"No Hay Cosas Imposibles, Solo Hombres Incapaces"</I></FONT></CENTER>
  #8 (permalink)  
Antiguo 18/03/2002, 10:18
Avatar de palidowsky  
Fecha de Ingreso: febrero-2002
Ubicación: Galicia-España
Mensajes: 438
Antigüedad: 22 años, 2 meses
Puntos: 0
Re: Maldito Formulario

Gracias por todo, a bet, a jlmm y a Helvira, os debo una.
  #9 (permalink)  
Antiguo 18/03/2002, 10:18
Avatar de palidowsky  
Fecha de Ingreso: febrero-2002
Ubicación: Galicia-España
Mensajes: 438
Antigüedad: 22 años, 2 meses
Puntos: 0
Re: Maldito Formulario

Gracias por todo, a bet, a jlmm y a Helvira, os debo una.
  #10 (permalink)  
Antiguo 19/03/2002, 04:13
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 22 años, 6 meses
Puntos: 5
Re: Maldito Formulario

jlmm --&gt;
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 07:13.