Foros del Web » Programando para Internet » Javascript »

Ayuda Validacion Formulario!

Estas en el tema de Ayuda Validacion Formulario! en el foro de Javascript en Foros del Web. Actualmente estoy desarrollando unas encuestas en mi empresa y estoy haciendo unos formularios con PHP, y Javascript, bueno básicamente debe tener varias validaciones, unas es ...
  #1 (permalink)  
Antiguo 27/09/2010, 06:45
 
Fecha de Ingreso: septiembre-2010
Mensajes: 3
Antigüedad: 13 años, 8 meses
Puntos: 0
Exclamación Ayuda Validacion Formulario!

Actualmente estoy desarrollando unas encuestas en mi empresa y estoy haciendo unos formularios con PHP, y Javascript, bueno básicamente debe tener varias validaciones, unas es que los valores del campo deben ser números y que deben ser del 1 al 4, eso lo tengo resuelto, pero lo que me falta y no he podido hacer es que en cada campo el valor deber ser único es decir que no se repita, es decir si en el campo "a" digite el numero 3 este numero no puede repetirse en otros campos.
copio parte del codigo que estoy aplicando.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin t&iacute;tulo</title>
<script type="text/javascript">
<!--
function MM_validateForm() { //v4.0
if (document.getElementById){
var i,p,q,nm,test,num,min,max,errors='',args=MM_valida teForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);
if (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
} else if (test!='R') { num = parseFloat(val);
if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
} } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
} if (errors) alert('The following error(s) occurred:\n'+errors);
document.MM_returnValue = (errors == '');
} }
//-->
</script>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
<label>
<input type="text" name="a" id="a" />
</label>
<p>
<label>
<input type="text" name="b" id="b" />
</label>
</p>
<p>
<label>
<input type="text" name="c" id="c" />
</label>
</p>
<p>
<label>
<input type="text" name="d" id="d" />
</label>
</p>
<p>
<label>
<input name="button" type="submit" id="button" onclick="MM_validateForm('a','','RinRange1:4','b', '','RinRange1:4','c','','RinRange1:4','d','','RinR ange1:4');return document.MM_returnValue" value="Enviar" />
</label>
</p>
</form>
</body>
</html>


cualquier ayuda lo agradeceria
  #2 (permalink)  
Antiguo 27/09/2010, 07:29
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 8 meses
Puntos: 331
Respuesta: Ayuda Validacion Formulario!

Modifica y utiliza esta función para recorrer los elementos de un formulario http://www.pkdisseny.com/blog/?p=47.
En la etiqueta form agregar onSubmit= return funcionValidar(). Así, cuando se envíe el form, se ejecutará la función, si falla, el formulario no se envía.
Si no tienes conocimientos de JS y para ahorrate trabajo intenta utilizar alguna librería standard tipo LiveValidation. Es fácil de usar, tiene buen diseño y funcionalidad:
http://livevalidation.com/
Procura no utilizar las funciones de Dreamweaver, el código es difícil de seguir y mantener.
Prueba a ver que tal, salu2
  #3 (permalink)  
Antiguo 27/09/2010, 07:45
 
Fecha de Ingreso: septiembre-2010
Mensajes: 3
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Ayuda Validacion Formulario!

gracias por la información, lo de http://livevalidation.com/ ya lo había probado, pero no esta la validación que te comento es decir que la variable contenida en los 4 input text sean diferentes. que no repita valores. sin embargo revisare de nuevo. lo que pasa es que JS no conozco mucho y eso me tiene enredado.
  #4 (permalink)  
Antiguo 27/09/2010, 08:31
 
Fecha de Ingreso: septiembre-2010
Mensajes: 3
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Ayuda Validacion Formulario!

bueno encontré algo que me ha ayudado, hice unos cambios en el JS

<script type="text/javascript">
<!--
function MM_validateForm() { //v4.0
if (document.getElementById){
var i,p,q,nm,test,num,min,max,errors='',args=MM_valida teForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);
if (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
} else if (test!='R') { num = parseFloat(val);
if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
if(form1.a.value == form1.b.value) errors+='- '+nm+' no se deben repetir estos valores.\n';
else if(form1.a.value == form1.c.value) errors+='- '+nm+' no se deben repetir estos valores.\n';
else if(form1.a.value == form1.d.value) errors+='- '+nm+' no se deben repetir estos valores.\n';
else if(form1.b.value == form1.d.value) errors+='- '+nm+' no se deben repetir estos valores.\n';
else if(form1.b.value == form1.c.value) errors+='- '+nm+' no se deben repetir estos valores.\n';
else if(form1.c.value == form1.d.value) errors+='- '+nm+' no se deben repetir estos valores.\n';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
} } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
} if (errors) alert('The following error(s) occurred:\n'+errors);
document.MM_returnValue = (errors == '');
} }
//-->
</script>
  #5 (permalink)  
Antiguo 27/09/2010, 08:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Tema movido desde PHP a Javascript

Etiquetas: php
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 11:11.