Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Resumir funciones en una sola

Estas en el tema de Resumir funciones en una sola en el foro de Frameworks JS en Foros del Web. Hola chicos, de nuevo yo jijiji, una preguntita, de verdad les agradecere mil su ayuda, veran, tengo estas funciones de jQuery: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript ...
  #1 (permalink)  
Antiguo 31/08/2010, 13:58
Avatar de JessicaTJ  
Fecha de Ingreso: enero-2007
Ubicación: 127.0.0.1
Mensajes: 472
Antigüedad: 17 años, 10 meses
Puntos: 25
Resumir funciones en una sola

Hola chicos, de nuevo yo jijiji, una preguntita, de verdad les agradecere mil su ayuda, veran, tengo estas funciones de jQuery:

Código Javascript:
Ver original
  1. // Datos de contacto
  2.     $('#compania').change( function (){
  3.         $('#contact_info_company').text( $(this).val() );
  4.     });
  5.     $('#nombre').change( function (){
  6.         $('#contact_info_name').text( $(this).val() );
  7.     });
  8.     $('#telefono').change( function (){
  9.         $('#contact_info_phone').text( $(this).val() );
  10.     });
  11.     $('#correo').change( function (){
  12.         $('#contact_info_email').text( $(this).val() );
  13.     });
  14.     $('#direccion').change( function (){
  15.         $('#contact_info_address').text( $(this).val() );
  16.     });
  17.     $('#ciudad').change( function (){
  18.         $('#contact_info_city').text( $(this).val() );
  19.     });
  20.     $('#estado').change( function (){
  21.         $('#contact_info_state').text( $(this).val() );
  22.     });
  23.     $('#codigpostal').change( function (){
  24.         $('#contact_info_zipcode').text( $(this).val() );
  25.     });

Esto hace que lo que se introduzca, por ejemplo, en un campo INPUT con ID "compania" se imprima en pantalla en un DIV con ID "contact_info_company"

Mi pregunta es, hay alguna manera de que estas funciones se "resuman" de manera que no sea tanta linea de codigo?

De verdad agradecere mil su ayuda !!!
__________________
٩(͡๏̯͡๏)۶ || ٩(͡๏̯͡๏)۶
  #2 (permalink)  
Antiguo 31/08/2010, 14:12
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Resumir funciones en una sola

simple, separarlos con coma:

$('#compania,#nombre,#telefono').change ...http://api.jquery.com/multiple-selector/

o si todos pertenecen a una clase:

$('input.nombre_clase').change ...
  #3 (permalink)  
Antiguo 31/08/2010, 15:20
Avatar de tredio  
Fecha de Ingreso: noviembre-2008
Ubicación: Carabobo
Mensajes: 466
Antigüedad: 16 años
Puntos: 66
Respuesta: Resumir funciones en una sola

igual asi tendrias que usar varios if preguntando que input esta generando el evento mediante el id, lo que deberias hacer es cambiar los id´s de los div´s de contenido, es decir,

contact_info_company por contact_info_compañia
contact_info_name por contact_info_nombre
contact_info_phone por contact_info_telefono
.
.
.
.
.
.
.


los mismos nombres que tienen los input que estan asociados a ellos, la razon de hacer esto es que sea mas facil unificar todo en una sola funcion, y tambien colocarle una clase a todos los inputs para que los puedas seleccionar a todos con un solo selector, te quedaria algo asi.


Código Javascript:
Ver original
  1. $('.clase_input').change( function (){
  2.         $('#contact_info_'+$(this).attr('id')).text( $(this).val() );
  3. });
  #4 (permalink)  
Antiguo 01/09/2010, 14:40
Avatar de JessicaTJ  
Fecha de Ingreso: enero-2007
Ubicación: 127.0.0.1
Mensajes: 472
Antigüedad: 17 años, 10 meses
Puntos: 25
Respuesta: Resumir funciones en una sola

Disculpen chicos pero no les entendi del todo, habria alguna manera de ke me hicieran el super enorme favor de explicarmelo con manzanas y naranjas? jijijiji, discupen pero estoy apenas iniciandome en jQuery
__________________
٩(͡๏̯͡๏)۶ || ٩(͡๏̯͡๏)۶
  #5 (permalink)  
Antiguo 01/09/2010, 15:35
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: Resumir funciones en una sola

Mirá, si todos los elementos son inputs, usas un selector de inputs:

Cita:
$('input').change( function (){
alert ( $(this).val() );
});
El tema es que vos queres llenar otro formulario a partir de este? Por que cada div apunta a llenar otro div? Siendo así, me gustaría ver tu html para darte una mejor respuesta.
  #6 (permalink)  
Antiguo 02/09/2010, 04:45
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 11 meses
Puntos: 65
Respuesta: Resumir funciones en una sola

lo que puso tredio de jquery es lo básico, seleccionar elemento, un evento change, recuperar un atributo e introducir texto en un elemento

no hay que entender mucho de jquery, se trata de lógica

si tenes varios elementos con sus respectivos 'id' y los valores lo querés colocar en divs inventate alguna convención

id input: 'nombre'
id div para colocar el valor del input #nombre: 'info_nombre'

entonces vez que si recuperas el id del input y lo concatenas a 'info_' da como resultado 'info_nombre'

lo mismo para los otros campos

id input: email
id div: info_email

id input: ciudad
id div: info_ciudad

y con la función que puso tredio está haciendo eso

Código Javascript:
Ver original
  1. $('#contact_info_'+$(this).attr('id')).text( $(this).val() );

la cadena "#contact_info_" mas el atributo de por ejemplo un input con id 'email' da como resultado #contact_info_email, entonces está seleccionando "#contact_info_email" y coloca el valor del elemento con el cual está trabajamdo $(this).val()

y si seguis esa convención, para ese comportamiento, esas tres lineas sirve para la cantidad de elemento que quieras

Etiquetas: funciones
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:10.