Foros del Web » Programando para Internet » Javascript »

Pasar Formulario a Funcion

Estas en el tema de Pasar Formulario a Funcion en el foro de Javascript en Foros del Web. Hola, estoy empezando con javascript y no acabo de tener muy claro aun algunas cosas. Una de ellas, cual es la mejor forma de pasar ...
  #1 (permalink)  
Antiguo 07/10/2005, 16:54
 
Fecha de Ingreso: octubre-2005
Mensajes: 53
Antigüedad: 19 años, 1 mes
Puntos: 2
Pasar Formulario a Funcion

Hola, estoy empezando con javascript y no acabo de tener muy claro aun algunas cosas.

Una de ellas, cual es la mejor forma de pasar los datos introducidoes en un formulario para que este los coja como variables y los pueda tratar?

He visto varias distintas y no me queda claro: Usando el onClick o el OnSubmit, otros usan un objeto del javascript llamado document... value si tener que pasar ningún parametro.. otros pasan uno generico this.. otros this.form..

La verdad que estoy un poco liado y no se bien que es cada cosa.
  #2 (permalink)  
Antiguo 07/10/2005, 19:16
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 3 meses
Puntos: 39
Información Conceptos basicos de Javascript

A ver, vamos por partes!
  1. Para pasar los datos de un formulario a una funcion, puedes pasarle el objeto form. Ejemplo:
    Código:
    function myfunc(formulario)
    {
      formulario.campo.value = "HOLA!";
    }
    
    El llamado de la funcion seria:
    Código HTML:
    <a onClick="myfunc(this.form)">Enlace</a> 
    Tambien podrias pasarle el nombre del formulario:
    Código:
    function myfunc(nombreForm)
    {
      document[nombreForm].campo.value = "HOLA!";
    }
    
    El llamado de la funcion seria:
    Código HTML:
    <form name="form1">
    <a onClick="myfunc('form1')">Enlace</a>
    </form> 
    Adicionalmente, podrias agregar como segundo parametro el objeto que quieras tratar (por ejemplo, un textbox), o su nombre (name).
    En general, la forma mas adecuada seria usar el metodo getElementById. Ya que este funciona en todos los browsers. Solo tendrias que agregar el atributo id a cada etiqueta que quieras tratar.
    El llamado de la funcion, para este caso, seria:
    Código:
    function myfunc(idObj)
    {
      document.getElementById(idObj).value = "HOLA!";
    }
    
  2. El evento onSubmit ocurre inmediatamente despues que se presiono un boton de tipo submit, y va en:
    Código HTML:
    <form onSubmit="myfunc(this)"> 
  3. El objeto document contiene toda la informacion de la pagina actual. Por ejemplo, objetos form, imágenes, etc.
    Para referir a cualquier elemento en el documento, necesitas saber la jerarquia de Javascript.
Bueno, si algo no quedo claro, pregunta con confianza!
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.

Última edición por flaviovich; 09/10/2005 a las 06:11
  #3 (permalink)  
Antiguo 09/10/2005, 05:34
 
Fecha de Ingreso: octubre-2005
Mensajes: 53
Antigüedad: 19 años, 1 mes
Puntos: 2
Gracias flaviovich por tu respuesta tan completa ;)

Voy a poner en prueba lo que me has explicado. Pero tengo una duda, cuando pasas a la función el (this.form), luego pones document.formulario.campo.value

He estado probando antes y me funciona solo poniendo formulario.campo.value, sin el objeto document. ¿ es una expresión correcta estándar o me puede dar problemas?

Otra duda que me ha surgido ha sido retornar valores entre funciones. Es decir, tengo una función que llama a otras 2 y me gustaría que estas dos me devolvieran un valor. ¿como se hace? con returns, punteros o por referencia?
  #4 (permalink)  
Antiguo 09/10/2005, 06:19
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 3 meses
Puntos: 39
Hola otra vez!
Pues si, tienes razon. Ya lo corregi.
Te doy un ejemplo para las funciones:
Código:
<script>
function f1()
{
  val1 = f2(1,2);
  va2 = f3(1,2);
}
function f2(n1,n2)
{
  return (n1+n2);
}
function f3(n1,n2)
{
  return (n1*n2);
}</script>
Bueno, creo que esta claro.
Punteros o referencias yo no he visto en Javascript. Quizas alguien del foro nos pueda ilustrar
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
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 18:25.