Foros del Web » Programando para Internet » Javascript »

Camo Validar Formulario

Estas en el tema de Camo Validar Formulario en el foro de Javascript en Foros del Web. ola a todos. El tema es que, deseo poner un un Array el contenido de cada caja de texto, pero solo aquellas cajas que tengan ...
  #1 (permalink)  
Antiguo 10/09/2008, 10:01
 
Fecha de Ingreso: agosto-2006
Mensajes: 24
Antigüedad: 17 años, 8 meses
Puntos: 1
Camo Validar Formulario

ola a todos.


El tema es que, deseo poner un un Array el contenido de cada caja de texto, pero solo aquellas cajas que tengan algo, y poder manipular el Array desde cualquier parte del script.

Como vereis ya tengo algo, pero no puedo hacer uso del array desde otra parte del script solo dentro de las sentencias.

<html>
<head>
<title>Frame 1 </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<head>
<script>



function empezar(){
var myUrls=new Array()
var totalFormsOk=0;
var j;

var myUrlsForms=document.myForm;

for (var j=0; j<myUrlsForms.length; j++){
if (myUrlsForms.elements[j].type=="text"){ // busco todas aquellas cajas de texto "text"
if (document.myForm[j].value.length>0){ // tomo solo las entradas que tengan algo "tengo la sospecha de que tengo el problema en esta linea"
myUrls[j]=document.myForm[j].value; // Pongo un un array los valores encontrados
alert(myUrls[j]) // El tema es este, que solo puedo manupular el array solo dentro de estas sentencias
// y lo que yo quiero llamar al array desde cualquier parte del script.
}
}

}
for (var j=0; j<myUrls.length; j++){
alert(myUrls[j]) // El problema es que: el array coje todas las cajas e inclullendo las vacias
// Pero lo raro me da error solo cuando el cuando no hay algo el la cajas de manera consecutiva
// Por ejemplo si hay algo en las dos primeras o solo en la primera todo va bien, pero si solo hay algo en la ultima
// o un una si y en otra no pues me da error.
}

}

</script>

</head>

<body>



<FORM NAME="myForm">
Url Nº 1 <br> <INPUT NAME="myInputUrl" TYPE="text">
Url Nº 2 <br> <INPUT NAME="myInputUr2" TYPE="text">
Url Nº 3 <br> <INPUT NAME="myInputUr3" TYPE="text">

<br><INPUT TYPE="button" value="Empezar" onclick="empezar()">
</form>



</body>
</html>

Esto es para hacer un carrusel de imagenes, los valores de las imagnes estaran dentro de las cajas de texto
  #2 (permalink)  
Antiguo 10/09/2008, 10:18
Avatar de jseros  
Fecha de Ingreso: agosto-2008
Ubicación: Bogotá
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 18
Respuesta: Camo Validar Formulario

Hola, prueba con esta función

Código PHP:

function form2Arrayidform )
{
    var 
myform document.getElementByIdidform );
    var 
myformfield myform.elements;
    var 
fieldsVector = [];
    
    for( var 
myformfield.length i++ )
        if( 
myformfield[i].type == "text" )
            if( 
myformfield[i].value != "" )
                
fieldsVectormyformfield[i].id ] = myformfield[i].value;
            
    return 
fieldsVector;    

y la usas de esta forma:

Con este formulario de prueba:
Código:
<form name="formulario" id="formulario" action="destino.php">
  <input type="text" name="nombre" id="nombre" />
</form>
Código PHP:
  
var arreglo form2Array"formulario" ); 

Me cuentas como te fué y si te sirvió.

Exitos!!

Última edición por jseros; 10/09/2008 a las 10:22 Razón: Arreglando Código
  #3 (permalink)  
Antiguo 10/09/2008, 11:29
 
Fecha de Ingreso: agosto-2006
Mensajes: 24
Antigüedad: 17 años, 8 meses
Puntos: 1
Respuesta: Camo Validar Formulario

Muchas gracias jseros.
Me sabe mal, pero me da un error, me parece que es en la variable "myformfield" "var myformfield = myform.elements; "


<html>
<head>
<title>Frame 1 </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<head>
<script>


function form2Array(idform)
{
var myform = document.getElementById(idform);
var myformfield = myform.elements;
var fieldsVector = [];
for(var i = 0 ; i < myformfield.length ; i++)
if( myformfield[i].type == "text")
if(myformfield[i].value != "" )
fieldsVector[ myformfield[i].id] = myformfield[i].value;

return fieldsVector;
}



alert(form2Array("formulario"));


</script>

</head>

<body>



<FORM name="formulario" id="formulario" action="destino.php">
Video Nº 1 <br> <INPUT NAME="myInputUrl" TYPE="text" id="nombre1">
Video Nº 2 <br> <INPUT NAME="myInputUr2" TYPE="text" id="nombre2">
Video Nº 3 <br> <INPUT NAME="myInputUr3" TYPE="text" id="nombre3">

<br><INPUT TYPE="button" value="Ejecuta" onclick="form2Array(this)" >
</form>



</body>
</html>
  #4 (permalink)  
Antiguo 10/09/2008, 11:36
Avatar de jseros  
Fecha de Ingreso: agosto-2008
Ubicación: Bogotá
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 18
Respuesta: Camo Validar Formulario

Eso es porque no esperas a que se termine de cargar el documento para acceder al formulario.

Mira este:

<html>
<head>
<title>Frame 1 </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<head>
<script>


function form2Array(idform)
{
var myform = document.getElementById(idform);
var myformfield = myform.elements;
var fieldsVector = [];
for(var i = 0 ; i < myformfield.length ; i++)
if( myformfield[i].type == "text")
if(myformfield[i].value != "" )
fieldsVector[ myformfield[i].id] = myformfield[i].value;

return fieldsVector;
}


window.onload = function(){
alert(form2Array("formulario"));
}

</script>

</head>

<body>



<FORM name="formulario" id="formulario" action="destino.php">
Video Nº 1 <br> <INPUT NAME="myInputUrl" TYPE="text" id="nombre1">
Video Nº 2 <br> <INPUT NAME="myInputUr2" TYPE="text" id="nombre2">
Video Nº 3 <br> <INPUT NAME="myInputUr3" TYPE="text" id="nombre3">

<br><INPUT TYPE="button" value="Ejecuta" onclick="form2Array(this)" >
</form>



</body>
</html>

Saludos.
  #5 (permalink)  
Antiguo 10/09/2008, 11:38
Avatar de jseros  
Fecha de Ingreso: agosto-2008
Ubicación: Bogotá
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 18
Respuesta: Camo Validar Formulario

Pero creo que deberias esperar a que un usuario llene el formulario y llamar a la función con un botón o algo así
  #6 (permalink)  
Antiguo 10/09/2008, 11:49
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Camo Validar Formulario

Hola:

Por lo que veo, form2array funciona con el id del tag form, y this es un objeto, en concreto el tag de la llamada... desde un botón deberías poner como parámetro this.form.id... aunque podría simplificarse enviando el propio formulario (this,form).

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 10/09/2008, 11:49
Avatar de jseros  
Fecha de Ingreso: agosto-2008
Ubicación: Bogotá
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 18
Respuesta: Camo Validar Formulario

Perdón no habia visto bien tu código:

Revisa así, corregí algunas cosas, te recomiendo que las revises:

Código PHP:
<html>
<
head>
<
title>Frame 1 </title>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<
head>
<
script>


function 
form2Array(idform)
{
    var 
myform document.getElementById(idform);
    var 
myformfield myform.elements;
    var 
fieldsVector = [];
    for(var 
myformfield.length i++)
        if( 
myformfield[i].type == "text")
            if(
myformfield[i].value != "" )
                
fieldsVectormyformfield[i].id] = myformfield[i].value;
    
    return 
fieldsVector;
}

window.onload = function(){
    
document.getElementById"formulario" ).onsubmit = function(){
        
alertform2Arraythis.id ) );
        return 
false;
    }
}

</script>

</head>

<body>



<form name="formulario" id="formulario" action="destino.php">
Video Nº 1 <br> <input name="myInputUrl" type="text" id="nombre1">
Video Nº 2 <br> <input name="myInputUr2" type="text" id="nombre2">
Video Nº 3 <br> <input name="myInputUr3" type="text" id="nombre3">

<br><input type="submit" value="Ejecuta" >
</form>



</body>
</html> 
Me cuentas..
  #8 (permalink)  
Antiguo 10/09/2008, 12:14
 
Fecha de Ingreso: agosto-2006
Mensajes: 24
Antigüedad: 17 años, 8 meses
Puntos: 1
Respuesta: Camo Validar Formulario

Muchas GRACIAS A TODOS, pero ya he resuelto mi problema, he cambiado esta linea: myUrls[j]=document.myForm[j].value; por esta: myUrls[c]=document.myForm[j].value;
Puedo usar directamente una funcion para acceder a los valores del array (en este caso) o accedo a los valores del array por medio de argumentos (jSeros).
Gracias jseros algunas lineas de tu script me ha dado algunas ideas y gracias tambien a ti caricatos

<html>
<head>
<title>Frame 1 </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<head>
<script>



function noEmpty(){
var myUrls=new Array()
var c=0;

var myUrlsForms=document.myForm;

for (var j=0; j<myUrlsForms.length; j++){
if (myUrlsForms.elements[j].type=="text"){
if (myUrlsForms[j].value!=""){
myUrls[c]=document.myForm[j].value; // He modificado este linea
c++;

}
}

}

}

</script>

</head>

<body>



<FORM NAME="myForm">
Video Nº 1 <br> <INPUT NAME="myInputUrl" TYPE="text">
Video Nº 2 <br> <INPUT NAME="myInputUr2" TYPE="text">
Video Nº 3 <br> <INPUT NAME="myInputUr3" TYPE="text">

<br><INPUT TYPE="button" value="ejecutar" onclick="noEmpty()">
</form>



</body>
</html>
  #9 (permalink)  
Antiguo 10/09/2008, 12:18
 
Fecha de Ingreso: agosto-2006
Mensajes: 24
Antigüedad: 17 años, 8 meses
Puntos: 1
Respuesta: Camo Validar Formulario

Gracias jaseros, muchas gracias, justo cuando escribía mi anterior mensaje te me has adenlantado con otro.
GRACIAS.
SALUDOS
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 21:23.