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

ocultar campos sin onclick

Estas en el tema de ocultar campos sin onclick en el foro de Frameworks JS en Foros del Web. Hola, a ver si me podeis ayudar. Tengo el siguiente código, que muestra/oculta campos según la opción de un radiobutton. Código: jQuery('input[name=opcion]').click(function() { if($(this).val() == ...
  #1 (permalink)  
Antiguo 09/04/2012, 11:28
 
Fecha de Ingreso: agosto-2008
Mensajes: 13
Antigüedad: 15 años, 8 meses
Puntos: 0
ocultar campos sin onclick

Hola, a ver si me podeis ayudar.

Tengo el siguiente código, que muestra/oculta campos según la opción de un radiobutton.
Código:
	jQuery('input[name=opcion]').click(function() {
		if($(this).val() == "X") {
			$('#password').hide();
			$('#password2').hide();
			$('#lb_pass').hide();
			$('#lb_pass2').hide();
			$('#lb_max_doce').hide();
			$('#email').show();
			$('#lb_email').show();
		} else {
			$('#password').show();
			$('#password2').show();
			$('#lb_pass').show();
			$('#lb_pass2').show();
			$('#lb_max_doce').show();
			$('#email').hide();
			$('#lb_email').hide();
		}
	});
Lo que quiero es que al cargar la página, y según el valor del radiobutton se muestren/oculten los campos (sin hacer click como funciona ahora).

Muchas gracias.
Saludos.
  #2 (permalink)  
Antiguo 09/04/2012, 12:00
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: ocultar campos sin onclick

Probá algo así:

Código Javascript:
Ver original
  1. $(function(){
  2.     var $inputs = jQuery('input[name=opcion]');
  3.     var establecer_valores_inputs = function() {
  4.         if($(this).val() == "X") {
  5.             $('#password').hide();
  6.             $('#password2').hide();
  7.             $('#lb_pass').hide();
  8.             $('#lb_pass2').hide();
  9.             $('#lb_max_doce').hide();
  10.             $('#email').show();
  11.             $('#lb_email').show();
  12.         } else {
  13.             $('#password').show();
  14.             $('#password2').show();
  15.             $('#lb_pass').show();
  16.             $('#lb_pass2').show();
  17.             $('#lb_max_doce').show();
  18.             $('#email').hide();
  19.             $('#lb_email').hide();
  20.         }
  21.     }
  22.    
  23.     $inputs.each(establecer_valores_inputs);    //llamar a la funcion para cada input al cargar la pagina
  24.     $inputs.click(establecer_valores_inputs);   //llamar a la funcion para el input que se clickqueó
  25. });
__________________
nahueljose.com.ar
  #3 (permalink)  
Antiguo 09/04/2012, 15:13
Avatar de sneyder05  
Fecha de Ingreso: enero-2009
Ubicación: Cali
Mensajes: 172
Antigüedad: 15 años, 3 meses
Puntos: 17
Información Respuesta: ocultar campos sin onclick

Podrías simplificar tu código uniendo en 1 solo selector todos lo id de los campos que vas a ocultar:
De
Código PHP:
$('#password').hide();
$(
'#password2').hide();
$(
'#lb_pass').hide();
$(
'#lb_pass2').hide();
$(
'#lb_max_doce').hide(); 
A
Código PHP:
$('#password,#password2,#lb_pass,#lb_pass2,#lb_max_doce').hide(); 
Así será mucho más eficiente y fácil de interpretar, al igual que lo puedes aplicar para los campos que vas a mostrar con .show
  #4 (permalink)  
Antiguo 09/04/2012, 15:45
 
Fecha de Ingreso: agosto-2008
Mensajes: 13
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: ocultar campos sin onclick

Gracias Naahuel por la respuesta, pero no me vale.

sneyder05, gracias por el aporte, ya aprendí algo nuevo :)

Saludos.
  #5 (permalink)  
Antiguo 10/04/2012, 08:19
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: ocultar campos sin onclick

"no te vale"?
__________________
nahueljose.com.ar

Etiquetas: campos, funcion, input, jquery, onclick
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:12.