Foros del Web » Programando para Internet » Javascript »

Validar un array de input's

Estas en el tema de Validar un array de input's en el foro de Javascript en Foros del Web. Hola, Estoy tratando de validar un formulario que se genera en forma dinamica, he visto varios ejemplos en internet, pero no he encontrado uno que ...
  #1 (permalink)  
Antiguo 24/02/2007, 19:36
 
Fecha de Ingreso: febrero-2007
Mensajes: 32
Antigüedad: 17 años, 2 meses
Puntos: 0
Validar un array de input's

Hola,

Estoy tratando de validar un formulario que se genera en forma dinamica, he visto varios ejemplos en internet, pero no he encontrado uno que trabaje con una matriz, sin embargo he elaborado este script:

<script language=JavaScript type=text/javascript>

function Validar(formulario) {

max=12;
alert("jeje entra");

for (i = 0; i < max; i++)
{
if (formulario.resultado1[i].value.length < 1) {
alert("Debe escribir un resultado");
formulario.resultado1[i].focus();
return(false);
}

for (i = 0; i < max; i++)
{
if (formulario.resultado2[i].value.length < 1) {
alert("Debe escribir un resultado");
formulario.resultado2[i].focus();
return(false);
}

for (i = 0; i < max; i++)
{
valor = parseInt(formulario.resultado1[i].value);

//Compruebo si es un valor numérico
if (isNaN(valor))
{
alert("Escriba sólo dígitos);
formulario.resultado1[i].focus();
return(false);
}
}

for (i = 0; i < max; i++)
{
valor = parseInt(formulario.resultado2[i].value);

//Compruebo si es un valor numérico
if (isNaN(valor))
{
alert("Escriba sólo dígitos);
formulario.resultado2[i].focus();
return(false);
}
}
formulario.submit();
}


que llamo al hacer clic sobre el boton de envio en el formulario:

<input type=submit value='Actualizar' onClick='Validar(this.form)'>

El problema es que cuando envio el formulario, el script parece que no funcionara,

agradezco en lo que me puedan ayudar.


Oscaf8
  #2 (permalink)  
Antiguo 24/02/2007, 20:47
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Re: Validar un array de input's

podrias postiar el codigo del formulario que queres validar con eso?

exitos
  #3 (permalink)  
Antiguo 25/02/2007, 10:50
 
Fecha de Ingreso: febrero-2007
Mensajes: 32
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Validar un array de input's

Quiero validar que los inputs no esten vacios y que contengan valores numericos, aqui esta el codigo de la pagina, el codigo inicial lo cambie por otro que encontre en internet pero igual no sirve, le agradezco en lo que me puedan ayudar, el codigo de validacion que estoy intentando que fuciones lo resalto en rojo:

<html>

<head>
<META name="verify-v1" content="uVLYdApEGB4KGM9uC3qqHNj/9Yx/CG06D+4s3a9Jsn0=" />
<link rel="STYLESHEET" type="text/css" href="../estilo.css">
<title>Super Copa Colombiana</title>
</head>

<script language=JavaScript type=text/javascript>

function Validar(){


for (i = 0; i < document.form.rondas.resultado1.length; i++)
{
if (document.form.rondas.resultado1[i].value.length < 1)
{
alert("Debe escribir un resultado");
document.form.rondas.resultado1[i].focus();
return(false);
}
}
return(true);
}

</script>


<body>
<?
//Inicio la sesión
session_start();

//COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO
if ($_SESSION["autentificado"] != "SI") {
//si no existe, envio a la página de autentificacion
header("Location: ../acceso/acceso.php");
//ademas salgo de este script
exit();
}

//Conexion con la base
mysql_connect("localhost","root","quintero");

//Selecciona una base de datos
mysql_select_db("dbssc");
?>

<div id="marco" >
<div id="banner" >
Aqui va el banner para la scc
</div>
<div id="menu" >
<div id="menu-salir" >
<?
echo "Sesi&oacute;n: ";
echo $_SESSION["login"] ;
?>
| <a href="../index.php?x=1">Salir</a>
</div>
<a href="../copa/copa.php">Copa</a> |
<a href="../index.php">Sobre la copa</a> |
<a href="../contacto/contacto.php">Cont&aacute;ctenos</a>
</div>

<div id="panel-izquierdo" >
<?
//Ejecutamos la sentencia SQL
$result1=mysql_query("select * from menu where grpmenu=2");

//Mostramos los registros
while ($row1=mysql_fetch_array($result1))
{
echo "<a href='admin.php?m=$row1[0]' > $row1[1] </a> <br>";
}
mysql_free_result($result1);
?>
</div>
<div id="panel-derecho" >
<?
//if ($_GET["m"])
// {
// $m=$_GET["m"];
// }
//else
// {
// echo "Bienvenido al sistema de administraci&oacute;n de la copa";
// }



//Ejecutamos la sentencia SQL
$result1=mysql_query("select * from copa where fincopa is null or fincopa='' ");

if (mysql_fetch_array($result1) != '0')
{
$controlcopa=1;
$codcopa=$result1[0];
}
else
{
$controlcopa=0;

}


if ($controlcopa == 1)
{
if (!$HTTP_POST_VARS)
{
echo "<form name='ronda' method=post action='admin.php'>";
//detectar ronda no actualizada
$rsrondas=mysql_query("select * from rondas where codronda in (select min(codronda) from rondas where actronda='0') ");
//Mostrar partidos
while ($ronda=mysql_fetch_array($rsrondas))
{
echo "<br><h1> Ronda $ronda[1] </h1>";
if ($ronda[1]<4)
{
$grupo=0;
//Partidos
$rspartidos=mysql_query("select codgrupo, (select nomequipo from equipos where codequipo=eq1partido) as equipo1, (select nomequipo from equipos where codequipo=eq2partido) as equipo2, eq1partido, eq2partido from partidos, grupos, equipos where codequipo = eq1partido and eqpgrupo=eq1partido and ronpartido ='$ronda[1]' ");
//Mostrar partidos
while ($partido=mysql_fetch_array($rspartidos))
{
echo "<div id='formulario-grupo' >";

if ($partido[0]!=$grupo)
{
$grupo=$partido[0];
echo "<br>Grupo " .$grupo;
}

echo "<div id='formulario-equipo' > <a href='xxxxxxxxxxxx]' target='hattrick'> $partido[1] </a> </div>";
echo "<div id='formulario-resultado' > <input type=text name='resultado1[]' size=1 class='formulario'> </div>";
echo "<div id='formulario-equipo' > <a href='xxxxxxxxxxx' target='hattrick'> $partido[2] </a> </div>";
echo "<div id='formulario-resultado' > <input type=text name='resultado2[]' size=1 class='formulario'> </div>";
echo "<div id='formulario-pena' > <select name='pena[]' size='1' class='formulario'> <option value='1'> </option> <option value='2'> WO </option> </select> </div>";
echo "</div>";
}
}
else
{

}
}

//Boton de actualizacion
echo "<br><div id='formulario-etiquetas'> <input type=submit value='Actualizar' onClick='Validar()'> </div>";

echo "</form>";
}
else
{

//si es p se carga por grupos
//al terminar carga de partidos actualiza ronda
//si ronda es 3 generar la siguiente ronda teniendo en cuenta las posiciones
//si si es mayor a ronda 3 crear siempre la siguiente ronda
//subir jugadores lo mismo si es p por grupos, las demas rondas todo junto
//detectar ultima ronda para cierre de copa y limpiar rondas

echo "actualizaci&oacute;n de la copa con exito";
}
}

else
{
echo 'Imposible actualizar, no se ha creado una copa.';
}
?>


</div>
<div id="pie" >
<a href="admin.php" > Administraci&oacute;n </a> | <a href="../creditos/creditos.php" > Dise&ntilde;o web </a> | &copy;2007 SCC
</div>
</div>
</body>

</html>
  #4 (permalink)  
Antiguo 25/02/2007, 12:20
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Re: Validar un array de input's

es complicado,,
mas porqe usa mucho bases de datos y no puedo probarlo en mi servidos pq no se como es la que usa

pero lo primero que note fue esto: en el javascript llama al formulario con
Código:
document.form.rondas...
mientras que el nombre del mismo es 'ronda'

proba arreglar eso,,

exitos!
  #5 (permalink)  
Antiguo 25/02/2007, 12:54
 
Fecha de Ingreso: febrero-2007
Mensajes: 32
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Validar un array de input's

OK, entiendo eso, pero ud me podria dar algun ejemplo (funcionando) o guia y hacer las pruebas, es que he encontrado cosas por internet pero varias se contradicen, ahora lo cambie por esto y tuve cuidado con lo que me comento:

<html>

<head>
<META name="verify-v1" content="uVLYdApEGB4KGM9uC3qqHNj/9Yx/CG06D+4s3a9Jsn0=" />
<link rel="STYLESHEET" type="text/css" href="../estilo.css">
<title>Super Copa Colombiana</title>


<script language=JavaScript type=text/javascript>

function Validar(){

var i


for (i = 0; i < document.form.resultado1.length; i++)
{
if (document.form.resultado1[i].value.length < 1)
{
alert("Debe escribir un resultado")
document.form.resultado1[i].focus()
return(false)
}
}
return(true)
}

</script>
</head>
<body>
<?
//Inicio la sesión
session_start();

//COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO
if ($_SESSION["autentificado"] != "SI") {
//si no existe, envio a la página de autentificacion
header("Location: ../acceso/acceso.php");
//ademas salgo de este script
exit();
}

//Conexion con la base
mysql_connect("localhost","root","quintero");

//Selecciona una base de datos
mysql_select_db("dbssc");
?>

<div id="marco" >
<div id="banner" >
Aqui va el banner para la scc
</div>
<div id="menu" >
<div id="menu-salir" >
<?
echo "Sesi&oacute;n: ";
echo $_SESSION["login"] ;
?>
| <a href="../index.php?x=1">Salir</a>
</div>
<a href="../copa/copa.php">Copa</a> |
<a href="../index.php">Sobre la copa</a> |
<a href="../contacto/contacto.php">Cont&aacute;ctenos</a>
</div>

<div id="panel-izquierdo" >
<?
//Ejecutamos la sentencia SQL
$result1=mysql_query("select * from menu where grpmenu=2");

//Mostramos los registros
while ($row1=mysql_fetch_array($result1))
{
echo "<a href='admin.php?m=$row1[0]' > $row1[1] </a> <br>";
}
mysql_free_result($result1);
?>
</div>
<div id="panel-derecho" >
<?
//if ($_GET["m"])
// {
// $m=$_GET["m"];
// }
//else
// {
// echo "Bienvenido al sistema de administraci&oacute;n de la copa";
// }



//Ejecutamos la sentencia SQL
$result1=mysql_query("select * from copa where fincopa is null or fincopa='' ");

if (mysql_fetch_array($result1) != '0')
{
$controlcopa=1;
$codcopa=$result1[0];
}
else
{
$controlcopa=0;

}


if ($controlcopa == 1)
{
if (!$HTTP_POST_VARS)
{
echo "<form name='form' method=post action='admin.php'>";
//detectar ronda no actualizada
$rsrondas=mysql_query("select * from rondas where codronda in (select min(codronda) from rondas where actronda='0') ");
//Mostrar partidos
while ($ronda=mysql_fetch_array($rsrondas))
{
echo "<br><h1> Ronda $ronda[1] </h1>";
if ($ronda[1]<4)
{
$grupo=0;
//Partidos
$rspartidos=mysql_query("select codgrupo, (select nomequipo from equipos where codequipo=eq1partido) as equipo1, (select nomequipo from equipos where codequipo=eq2partido) as equipo2, eq1partido, eq2partido from partidos, grupos, equipos where codequipo = eq1partido and eqpgrupo=eq1partido and ronpartido ='$ronda[1]' ");
//Mostrar partidos
while ($partido=mysql_fetch_array($rspartidos))
{
echo "<div id='formulario-grupo' >";

if ($partido[0]!=$grupo)
{
$grupo=$partido[0];
echo "<br>Grupo " .$grupo;
}

echo "<div id='formulario-equipo' > <a href='xxxx' target='hattrick'> $partido[1] </a> </div>";
echo "<div id='formulario-resultado' > <input type='text' name='resultado1[]' size=1 class='formulario'> </div>";
echo "<div id='formulario-equipo' > <a href='xxxx' target='hattrick'> $partido[2] </a> </div>";
echo "<div id='formulario-resultado' > <input type='text' name='resultado2[]' size=1 class='formulario'> </div>";
echo "<div id='formulario-pena' > <select name='pena[]' size='1' class='formulario'> <option value='1'> </option> <option value='2'> WO </option> </select> </div>";
echo "</div>";
}
}
else
{

}
}

//Boton de actualizacion
echo "<br><div id='formulario-etiquetas'> <input type=submit value='Actualizar' onClick='Validar()'> </div>";

echo "</form>";
}
else
{

//si es p se carga por grupos
//al terminar carga de partidos actualiza ronda
//si ronda es 3 generar la siguiente ronda teniendo en cuenta las posiciones
//si si es mayor a ronda 3 crear siempre la siguiente ronda
//subir jugadores lo mismo si es p por grupos, las demas rondas todo junto
//detectar ultima ronda para cierre de copa y limpiar rondas

echo "actualizaci&oacute;n de la copa con exito";
}
}

else
{
echo 'Imposible actualizar, no se ha creado una copa.';
}
?>


</div>
<div id="pie" >
<a href="admin.php" > Administraci&oacute;n </a> | <a href="../creditos/creditos.php" > Dise&ntilde;o web </a> | &copy;2007 SCC
</div>
</div>
</body>

</html>
  #6 (permalink)  
Antiguo 25/02/2007, 13:18
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Re: Validar un array de input's

mira estube investigando y probando un poco y lo resolvi

hay un par de problemas ahi:
el nombre del formulario: ponle el nombre que qieras,pero no 'form', puedes ponerle 'form1' y listo

el boton que envia: debe ser de tipo 'button', y el script le da al submit si esta todo ok

y por ultimo, la razon por la cual javascript no ve los campos:
usar resultado1[] le sirve a php, pero para javascript el campo se llama 'resultado1[]', asi completo!!

entonces el javascript quedaria mas o menos asi:
Código:
function Validar(){
var i;
var validado=1;
var frm=document.form1; //<--- FORMULARIO
for(i=0; i<frm.elements['resultado1[]'].length; i++){
	if (frm.elements['resultado1[]'][i].value.length < 1) {
		alert("Debe escribir un resultado");
		frm.elements['resultado1[]'][i].focus();
		validado=0;
		return(false);
	}
}
if(validado) {
frm.submit();
}
}
eso ya lo probe y funciona correctamente,
recuerda arreglar esas cositas en tu form

espero qe te sirva

exitos!
  #7 (permalink)  
Antiguo 25/02/2007, 13:24
 
Fecha de Ingreso: febrero-2007
Mensajes: 32
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Validar un array de input's

Amigo muchas gracias por su interes en ayudarme, un amigo tambien me esta ayudando y detectamos lo del button, voy a probar lo que acabo de colocar y le comento.

Nuevamente muchas gracias.

Oscarf8
  #8 (permalink)  
Antiguo 25/02/2007, 13:33
 
Fecha de Ingreso: febrero-2007
Mensajes: 32
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Validar un array de input's

gep muchisimas gracias, funciona perfecto ese codigo que me envio.



Saludos
  #9 (permalink)  
Antiguo 25/02/2007, 14:02
 
Fecha de Ingreso: febrero-2007
Mensajes: 32
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Validar un array de input's

Mire este me lo paso un amigo hace unos minutos y me sirve para todos los tipo text en general:

for (i = 0; i < document.ronda.elements.length; i++)
{
if (document.ronda.elements[i].type=="text")
{
valor = document.ronda.elements[i].value;
if(valor=="") {
alert("Debe escribir un resultado");
document.ronda.elements[i].focus();
return(false);
}
}
}

}

Este lo voy a usar para verificar si estan vacios y el suyo lo acondicione para verificar el tipo de dato.

Saludos
  #10 (permalink)  
Antiguo 25/02/2007, 14:03
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Re: Validar un array de input's

bueno me alegro de qe te haya servido,un placer

exitos!

~EDIT
(este mensaje lo mande antes qe el tuyo,,)

ah,bueno muy bien ^^
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 02:39.