Comunidad de diseño web y desarrollo en internet online

javascript: no logro que sustituya un valor

Citar            
MensajeEscrito el 21 Ene 2008 08:44 pm
Hola todos, estoy tratando de hacer un script que valla tomando los valores de cada campo en un formulario (por ahora) para luego validarlos , algo asi

Código :

function validar(formulario) {
 var i = 0;
 var ncampos = 3;
 var campo = new Array(3);
 campo[0]='nombre';
 campo[1]='apellido';
 campo[2]='email';
 while (i < ncampos)
  {var valor=formulario.campo[i].value;
   //aqui deberia haber obtenido el valor de ese campo, solo quedaria validarlo y asi con los demás;
    i++;}
                             }

El porblema está precisasmente en la linea que dice "formulario.campo[i].value",
el script sustituye el valor "formulario", pero no el de "campo[i]",
esto solo ocurre cuando "campo[i]" está en esa posicion.
Se que podria llamar a cada campo individualmente, pero necesito que sea asi para poderlo implementar en varios formularios distintos y solo cambair el numero de campos, gracias por adelnatado
[/code]

Por pneuma

4 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 22 Ene 2008 12:03 am
El problema es que no estas instanciando correctamente las variables. Si tienes:

Código :

function check( formulario ){
 campo[0] = "Uno";
 campo[1] = "Dos";
 campo[2] = "Tres";
}

(como tienes actualmente), la variable campo se crea en el ámbito de la funcion check. Asi que formulario no esta teniendo ningun papel ahi. Si quieres hacerlo de una manera mejor, te sugiero que lo hagas orientado a objetos:

Código :

window.onload = function(){
   var formulario= function( input_form, input_campos ){

      this.campos = input_campos;
      this.form = input_form;
      this.vector = ["nombre","apellido","comida"];
      //Voy a almacenar los resultados en un vector:
      this.results = [];

      // Tambien puedes usar for() para acortar codigo
      for(var i=0; i < this.campos ; i++){
         var valor = this.form[ this.vector[i] ];
         this.results.push( valor );
      }
   };

};

// El modo de uso es muy sencillo, y lo puedes usar con varios forms:

var mi_form = new formulario( document.datos, 1 );
alert(mi_form.results);

var mi_otro_form = new formulario( document.form2, 5 );

// Siendo los parametros: 1) La ruta del form 2) La cantidad de campos



Mucha suerte, y avisas si algun problema.

PD: Te sugiero leer el tutorial de programacion orientada a objetos en javascript (Quoting RattaMono: "Solo por que es mio" XD )

Por Lunatic Lycanthrop

Claber

1203 de clabLevel

7 tutoriales

1 ejemplo

Genero:Masculino  

The dark places where wolves access internet with 46,6 kbps

firefox
Citar            
MensajeEscrito el 22 Ene 2008 03:34 pm
muchas gracias por la ayuda hermano! desde hace tiempo me carcomia saber donde estaba el error, saludos y voy por el articulo!

Por pneuma

4 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.